如何更改Jframe的默认外观? (不是Netbeans的主题)

时间:2014-02-27 11:06:52

标签: java swing netbeans jframe

我想更改我从此处创建的所有jframe表单的默认外观,而不必手动编辑我创建的每个jframe的每个外观代码 '雨云'到了' Windows'。

所以我想要发生的是从我启动Netbeans到创建新Jframe的时候,我刚创建的Jframe的外观和感觉代码将自动设置为" Windows"而不是" Nimbus"。

我希望在点击“>新>后,外观和感觉代码看起来像这样。 Jframe表格':

        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默认情况下具有Windows外观和感觉所以我不必通过源选项卡并将Nimbus更改为Windows对于我创建的每个Jframe。

3 个答案:

答案 0 :(得分:17)

首先来看看这个主题:The Use of Multiple JFrames, Good/Bad Practice?

  

注意:我不是试图主题Netbeans本身,我只想要Jframe   我创建的默认窗口的外观和感觉,所以我不是   必须通过源选项卡并将Nimbus更改为Windows for   我创建的每个Jframe。

您要更改的内容称为模板:您可以通过新建文件向导创建的每个文件都有一个关联的模板。说过这个NetBeans后,开发人员可以更新/创建默认模板。转到工具 - >模板并寻找 Swing GUI Forms - >的JFrame

enter image description here

这里有两个选项:

  1. 在编辑器中打开模板并在那里进行修改。
  2. 创建一个重复的模板并修改最后一个模板。
  3. 我选择2只是为了保持原始模板不被修改..

    enter image description here

    编辑模板时,只需修改此行(或实际需要的观察者):

    enter image description here

    最后创建一个新的" custom" JFrame只需在 Swing GUI表单中找到您的模板 - > MyJFrameTemplate 如下所示:

    enter image description here


    另外

    在下面阅读@Misgevolution的评论我认为还有待澄清的事情。这种自动生成的main方法仅用于测试目的,使开发人员能够运行"顶级容器。 Java应用程序只需要一个main类,因此在部署应用程序时应删除此仅测试main方法。正如其他答案中所建议的那样,L& F应该只在启动时建立一次,而不是在每个顶级容器中建立。

答案 1 :(得分:4)

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行'只需用“Nimbus”替换“windows”并将此代码放在应用程序的主框架中并以嵌套形式调用另一帧,它将自动为所有表单应用nimbus theam。

答案 2 :(得分:3)

请参阅java tutorial更改启动后的外观部分。你必须打电话给:

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

其中lnfName是LookAndFeel名称,frameJFrame对象。

相关问题