メソッドはたくさんあると思いますが、コードへの影響が最も少ない、これを行うための推奨される方法は何ですか?
プロパティファイルを作成することは明らかですが、レンダリングで値をどのように交換しますか?J2EEでは、常にページ全体を再レンダリングするだけなので簡単です。しかし、Swingアプリでは、.getProperty()のコードをpaintComponent(Graphics g)メソッドに追加するだけですか?
その場合は、重く見えませんか?以前は必要がなかった場所でこのメソッドをどこでもオーバーライドする必要があります...
追加:何らかの登録パターンを強制せずに、現在表示されているすべてのコンポーネントを再レンダリングする通知システムをどのようにセットアップしますか?
paintComponent(Graphics g)を上書きした場合、何かが変更されたイベントを発生させるだけで、paintComponent(Graphics g)メソッドが呼び出されると思います...
私が思いついた唯一の解決策は、再レンダリングする必要があるすべてのコンポーネントの大規模なレジストリを作成することでした。次に、ロケールを切り替えるための呼び出しが行われた場合は、レジストリを呼び出すだけで、登録されているすべてのコンポーネントを調べ、それらの値を調整します。したがって、たとえば、登録されているすべてのJLabelについて、
for(JLabel specificJLabel : REGISTRY.registeredJLabels)
{
String localeKey = specificJLabel.getActionCommand();
specificJLabel.setText(ResourceBundle.getString(localeKey));
}
ロケールキーは、コンポーネントのActionCommandに格納されます。次に、現在レンダリングされている画面が何であれ、メインの親パネルがそれを再レンダリングします。また、この方法でレジストリがロケールキーを管理する必要がなくなり、これらはレジストリから完全に分離されます。各コンポーネントは、ResourceBundleへの独自のロケールキーを管理する責任があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加