How can I change the default look and feel of Jframe? (Not theme of Netbeans)

前端 未结 3 821
醉话见心
醉话见心 2021-02-08 00:54

I want to change the default look and feel of all the jframe forms I\'ll create from here on out instead of having to manually edit every look and feel code of every jframe I cr

相关标签:
3条回答
  • 2021-02-08 01:11

    See Changing the Look and Feel After Startup section of the java tutorial. You have to call like:

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

    Where lnfName is the LookAndFeel name and frame is your JFrame Object.

    0 讨论(0)
  • 2021-02-08 01:14

    First of all take a look to this topic: The Use of Multiple JFrames, Good/Bad Practice?

    Note: I am not trying to theme Netbeans itself, I just want the Jframe that I create to have the windows look and feel by default so I don't have to go through the source tab and change Nimbus to Windows for every Jframe I create.

    What you want to change is called template: every file you can create through the New File wizard has an associated template. Having said this NetBeans gives the developers the ability to update/create default templates. Go to Tools -> Templates and look for Swing GUI Forms -> JFrame

    enter image description here

    You have two options here:

    1. Open the template in the editor and modify it there.
    2. Create a duplicate template and modify this last one.

    I'd go with Option 2 just to keep the original template unmodified..

    enter image description here

    When you edit the template just modify this line (or watherever you want actually):

    enter image description here

    Finally to create a new "custom" JFrame just find your template in Swing GUI Forms -> MyJFrameTemplate as shown below:

    enter image description here


    In addition

    Reading @Misgevolution's comment below I think there's something to be clarified. This auto-generated main method is there just for test purposes making developers be able to "run" top-level containers. A Java application only needs one main class so this test-only main methods should be deleted when you will deploy your application. As suggested in other answers the L&F should be established only once at the start-up, not in every top-level container.

    0 讨论(0)
  • 2021-02-08 01:18
    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.    }
    

    at line '3' just replace "windows" by "Nimbus" and put this code in main frame of application and call another frames in nested form it will automatically apply nimbus theam for all the forms.

    0 讨论(0)
提交回复
热议问题