web-dev-qa-db-ja.com

Jframeのデフォルトのルックアンドフィールを変更するにはどうすればよいですか? (Netbeansのテーマではありません)

私が作成するすべてのjframeのすべてのLook&Feelコードを「Nimbus」から「Windows」に手動で編集する代わりに、これから作成するすべてのjframeフォームのデフォルトのLook&Feelを変更したいと思います。

つまり、Netbeansを起動してから新しいJframeを作成するまで、作成したJframeのLook&Feelのコードは、「Nimbus」ではなく「Windows」に自動的に設定されます。

「新規」>「Jframeフォーム」をクリックした直後のLook&Feelコードは次のようになります。

        try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Windows".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    }

注:Netbeans自体にテーマを設定するのではなく、作成するJframeにデフォルトでウィンドウのルックアンドフィールを持たせたいので、作成するすべてのJframeについてソースタブを経由してNimbusをWindowsに変更する必要はありません。 。

12
Exena

まず、このトピックを見てください: 複数のJFrameの使用、良い/悪い習慣?

注:Netbeans自体にテーマを設定するつもりはありませんデフォルトでウィンドウのルックアンドフィールを作成するように作成したJframeだけにしたいので、[ソース]タブに移動する必要はありません。作成するJframeごとにNimbusをWindowsに変更します。

変更したいものをテンプレートと呼びます。New Fileウィザードで作成できるすべてのファイルには、テンプレートが関連付けられています。このNetBeansを使用すると、開発者はデフォルトのテンプレートを更新/作成できます。 Tools-> Templatesに移動し、Swing GUI Forms-> JFrameを探します

enter image description here

ここには2つのオプションがあります。

  1. エディターでテンプレートを開き、そこで変更します。
  2. 複製テンプレートを作成し、この最後のテンプレートを変更します。

元のテンプレートを変更しないために、オプション2を使用します。

enter image description here

テンプレートを編集するときは、次の行を変更するだけです(または、実際に希望するものはどこでもかまいません)。

enter image description here

最後に、新しい「カスタム」JFrameを作成するには、以下に示すように、Swing GUIフォーム-> MyJFrameTemplateでテンプレートを見つけます。

enter image description here


加えて

以下の@Misgevolutionのコメントを読むと、明確にすべきことがあると思います。この自動生成されたmainメソッドは、開発者がトップレベルのコンテナを「実行」できるようにするテスト目的のためだけにあります。 A Javaアプリケーションはmainクラスを1つだけ必要とするため、アプリケーションをデプロイするときにこのテスト専用mainメソッドを削除する必要があります。他の回答で提案されているように、 L&Fは、すべての最上位コンテナではなく、起動時に1回だけ確立する必要があります。

17
dic19
1. try {
2.        for (javax.swing.UIManager.LookAndFeelInfo info :  javax.swing.UIManager.getInstalledLookAndFeels()) {
3.            if ("*Windows*".equals(info.getName())) {
4.               javax.swing.UIManager.setLookAndFeel(info.getClassName());
5.                break;
6.             }
7.         }
8.    }

行 '3'で「windows」を「Nimbus」に置き換えるだけで、このコードをアプリケーションのメインフレームに配置し、ネストされた形式で別のフレームを呼び出すと、すべてのフォームにnimbus theamが自動的に適用されます。

4

Javaチュートリアル起動後のルックアンドフィールの変更セクションを参照してください。次のように呼び出す必要があります。

UIManager.setLookAndFeel(lnfName);    
SwingUtilities.updateComponentTreeUI(frame);    
frame.pack();

ここで、lnfNameはLookAndFeelの名前で、frameJFrameオブジェクトです。

3
Misgevolution