私はこれをどこに置くかについてちょっと混乱しています:
_try {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
UIManager.setLookAndFeel("com.Sun.Java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception e){
}
_
JFrame
クラスを拡張しませんでしたが、JFrame f = new JFrame();
を使用しましたありがとう:D
これを配置する最も一般的な場所は、static void main(String [] args)メソッドのすぐ内側です。そのようです:
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.Sun.Java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception ignored){}
new YourClass(); //start your application
}
詳細については、このサイトを参照してください: http://docs.Oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
注:これは質問への回答ではありません(LAFを設定するためにwhereでした)。代わりに、質問に答えていますhow-toパッケージ名に依存しない方法でLAFを設定します。 f.i.のように、クラスが移動した場合の生活を簡素化します。 com.Sun *からjavax.swingへのニンバス。
基本的なアプローチは、インストールされているLAFについてUIManagerにクエリを実行し、一致するものが見つかるまでそれらをループして設定することです。 SwingXに実装されているようなメソッドは次のとおりです。
/**
* Returns the class name of the installed LookAndFeel with a name
* containing the name snippet or null if none found.
*
* @param nameSnippet a snippet contained in the Laf's name
* @return the class name if installed, or null
*/
public static String getLookAndFeelClassName(String nameSnippet) {
LookAndFeelInfo[] plafs = UIManager.getInstalledLookAndFeels();
for (LookAndFeelInfo info : plafs) {
if (info.getName().contains(nameSnippet)) {
return info.getClassName();
}
}
return null;
}
使用法(ここでは例外処理なし)
String className = getLookAndFeelClassName("Nimbus");
UIManager.setLookAndFeel(className);
UIManager.setLookAndFeel()
は、すでに作成されているコンポーネントでは機能しません。これは、アプリケーションのすべてのウィンドウにルックアンドフィールを設定するための良い方法です。これにより、プログラムで開いているすべてのWindowsに設定されます。作成された新しいウィンドウはすべて、UIManagerによって設定されたものを使用します。
UIManager.setLookAndFeel(lookModel.getLookAndFeels().get(getLookAndFeel()));
for(Window window : JFrame.getWindows()) {
SwingUtilities.updateComponentTreeUI(window);
}
このブロックは、JFrameを作成した後のメインメソッド、またはJFrameを拡張するクラスのコンストラクターに配置できます。
try
{
//Set the required look and feel
UIManager.setLookAndFeel("com.Sun.Java.swing.plaf.nimbus.NimbusLookAndFeel");
//Update the component tree - associate the look and feel with the given frame.
SwingUtilities.updateComponentTreeUI(frame);
}//end try
catch(Exception ex)
{
ex.printStackTrace();
}//end catch
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException || javax.swing.UnsupportedLookAndFeelException ex) {
Java.util.logging.Logger.getLogger( Home.class.getName()).log(Java.util.logging.Level.SEVERE, null, ex);
}