Swing のコンポーネントを使用して GUI を構築する Java で書かれたプログラムは、すべてのオペレーティング システムでまったく同じように表示されますか?
編集: このように質問させてください: Java を使用して、すべてのプラットフォームでまったく同じように表示されることが保証されている GUI を設計することは可能ですか?
Swing のコンポーネントを使用して GUI を構築する Java で書かれたプログラムは、すべてのオペレーティング システムでまったく同じように表示されますか?
編集: このように質問させてください: Java を使用して、すべてのプラットフォームでまったく同じように表示されることが保証されている GUI を設計することは可能ですか?
はい、Swing を使用し、プラットフォーム固有のコードを使用しない限り、そうです。
そうは言っても、彼らは「自然」とは感じません。SWTはそこに少し優れています
かなりそうです。しかし、UIManager を使用すると、オペレーティング システムのテーマに基づいてテーマを決定できます。
例:
UIManager.LookAndFeelInfo looks[] = UIManager.getInstalledLookAndFeels();
try{
//0-Swing, 1-Mac, 2-?, 3-Windows, 4-Old Windows
UIManager.setLookAndFeel(looks[3].getClassName());
}catch(Exception e){
System.out.println(e.getMessage());
}
簡単に言うと、swing はシステムのルック アンド フィールを使用するため、デフォルトでは見た目が異なりますが、オーバーライドすることができます (http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html)。この場合はアプリケーションです。すべてのプラットフォームで同じルック アンド フィールで同じように見えるか、または -Dswing.noxp=true のようないくつかのルック アンド フィール機能を無効にすることができます。