Java 如何在 netbeans 中更改挥杆的外观和感觉

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2498600/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 08:29:15  来源:igfitidea点击:

how to change swing look and feel in netbeans

javaswingnetbeansnetbeans6.8look-and-feel

提问by Radi

i am new to netbeans ide , i have a swing desktop application and i want to change the default java look and feel (for it) to substance look and feel ( or other) , so how to add substance jar file to my project (i want to deploy the project to jar file) , and set a look and feel from it .

我是 netbeans ide 的新手,我有一个 Swing 桌面应用程序,我想将默认的 Java 外观(对于它)更改为实体外观(或其他),那么如何将实体 jar 文件添加到我的项目(我要将项目部署到 jar 文件),并从中设置外观。

thanks

谢谢

采纳答案by Tomislav Nakic-Alfirevic

You place the .jar in a module wrapper, as you would any .jar file in a NetBeans Platform application. As for setting the look and feel, you might want to extend ModuleInstall, specifically, override the restored() method with something like this:

您将 .jar 放在模块包装器中,就像在 NetBeans 平台应用程序中放置任何 .jar 文件一样。至于设置外观,您可能希望扩展ModuleInstall,具体来说,使用以下内容覆盖 restore() 方法:

    try {
      UIManager.setLookAndFeel(new SubstanceRavenGraphiteLookAndFeel());
    } catch (Exception e) {
      System.out.println("Substance Raven Graphite failed to initialize");
    }

回答by karkoonzaid

First try this code :

首先试试这个代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame {
public Test() {
    initComponents();
}

private void initComponents() {
    // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
    menuBar1 = new JMenuBar();
    menu1 = new JMenu();
    menuItem5 = new JMenuItem();
    menuItem4 = new JMenuItem();
    checkBoxMenuItem1 = new JCheckBoxMenuItem();
    menuItem3 = new JMenuItem();
    menu2 = new JMenu();
    menuItem6 = new JMenuItem();
    tabbedPane1 = new JTabbedPane();
    panel1 = new JPanel();
    scrollPane1 = new JScrollPane();
    textPane1 = new JTextPane();
    button1 = new JButton();
    button2 = new JButton();
    button3 = new JButton();
    scrollPane2 = new JScrollPane();
    textArea1 = new JTextArea();
    scrollPane3 = new JScrollPane();
    tree1 = new JTree();
    progressBar1 = new JProgressBar();
    radioButton1 = new JRadioButton();
    checkBox1 = new JCheckBox();
    panel2 = new JPanel();
    panel3 = new JPanel();

    Container contentPane = getContentPane();
    contentPane.setLayout(null);
    {
        {
            menu1.setText("text");
            menuItem5.setText("text");
            menu1.add(menuItem5);
            menuItem4.setText("text");
            menu1.add(menuItem4);
            menu1.addSeparator();
            checkBoxMenuItem1.setText("text");
            menu1.add(checkBoxMenuItem1);
            menuItem3.setText("text");
            menu1.add(menuItem3);
        }
        menuBar1.add(menu1);
        {
            menu2.setText("text");
            menuItem6.setText("text");
            menu2.add(menuItem6);
        }
        menuBar1.add(menu2);
    }
    setJMenuBar(menuBar1);
    {

        {
            panel1.setLayout(null);

            {
                scrollPane1.setViewportView(textPane1);
            }
            panel1.add(scrollPane1);
            scrollPane1.setBounds(15, 15, 665, scrollPane1.getPreferredSize().height);
            button1.setText("text");
            panel1.add(button1);
            button1.setBounds(15, 45, 300, button1.getPreferredSize().height);
            button2.setText("text");
            panel1.add(button2);
            button2.setBounds(325, 45, 140, 23);
            button3.setText("text");
            panel1.add(button3);
            button3.setBounds(470, 45, 210, 23);
            {
                scrollPane2.setViewportView(textArea1);
            }
            panel1.add(scrollPane2);
            scrollPane2.setBounds(15, 75, 665, 175);
            {
                scrollPane3.setViewportView(tree1);
            }
            panel1.add(scrollPane3);
            scrollPane3.setBounds(15, 260, 140, 150);
            progressBar1.setValue(40);
            panel1.add(progressBar1);
            progressBar1.setBounds(160, 260, 520, 20);
            radioButton1.setText("text");
            panel1.add(radioButton1);
            radioButton1.setBounds(160, 290, 100, radioButton1.getPreferredSize().height);
            checkBox1.setText("text");
            panel1.add(checkBox1);
            checkBox1.setBounds(265, 295, 165, checkBox1.getPreferredSize().height);

            {
                Dimension preferredSize = new Dimension();
                for(int i = 0; i < panel1.getComponentCount(); i++) {
                    Rectangle bounds = panel1.getComponent(i).getBounds();
                    preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                    preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
                }
                Insets insets = panel1.getInsets();
                preferredSize.width += insets.right;
                preferredSize.height += insets.bottom;
                panel1.setMinimumSize(preferredSize);
                panel1.setPreferredSize(preferredSize);
            }
        }
        tabbedPane1.addTab("text", panel1);
        {
            panel2.setLayout(null);

            {
                Dimension preferredSize = new Dimension();
                for(int i = 0; i < panel2.getComponentCount(); i++) {
                    Rectangle bounds = panel2.getComponent(i).getBounds();
                    preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                    preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
                }
                Insets insets = panel2.getInsets();
                preferredSize.width += insets.right;
                preferredSize.height += insets.bottom;
                panel2.setMinimumSize(preferredSize);
                panel2.setPreferredSize(preferredSize);
            }
        }
        tabbedPane1.addTab("text", panel2);

        {
            panel3.setLayout(null);

            {
                Dimension preferredSize = new Dimension();
                for(int i = 0; i < panel3.getComponentCount(); i++) {
                    Rectangle bounds = panel3.getComponent(i).getBounds();
                    preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                    preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
                }
                Insets insets = panel3.getInsets();
                preferredSize.width += insets.right;
                preferredSize.height += insets.bottom;
                panel3.setMinimumSize(preferredSize);
                panel3.setPreferredSize(preferredSize);
            }
        }
        tabbedPane1.addTab("text", panel3);

    }
    contentPane.add(tabbedPane1);
    tabbedPane1.setBounds(10, 10, 700, 450);

    {
        Dimension preferredSize = new Dimension();
        for(int i = 0; i < contentPane.getComponentCount(); i++) {
            Rectangle bounds = contentPane.getComponent(i).getBounds();
            preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
            preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
        }
        Insets insets = contentPane.getInsets();
        preferredSize.width += insets.right;
        preferredSize.height += insets.bottom;
        contentPane.setMinimumSize(preferredSize);
        contentPane.setPreferredSize(preferredSize);
    }
    pack();
    setLocationRelativeTo(getOwner());

}

private JMenuBar menuBar1;
private JMenu menu1;
private JMenuItem menuItem5;
private JMenuItem menuItem4;
private JCheckBoxMenuItem checkBoxMenuItem1;
private JMenuItem menuItem3;
private JMenu menu2;
private JMenuItem menuItem6;
private JTabbedPane tabbedPane1;
private JPanel panel1;
private JScrollPane scrollPane1;
private JTextPane textPane1;
private JButton button1;
private JButton button2;
private JButton button3;
private JScrollPane scrollPane2;
private JTextArea textArea1;
private JScrollPane scrollPane3;
private JTree tree1;
private JProgressBar progressBar1;
private JRadioButton radioButton1;
private JCheckBox checkBox1;
private JPanel panel2;
private JPanel panel3;

public static void main(String args[]){

    new Test().setVisible(true);


  }
}

You can also use Nimbus theme, modified to this code :

您还可以使用 Nimbus 主题,修改为以下代码:

try{
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

    }
    catch(Exception e){
        System.out.println("Nimbus isn't available");
    }

And edit the main project for this :

并为此编辑主项目:

public static void main(String args[]){

    try{
          UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

    }
    catch(Exception e){
        System.out.println("Nimbus isn't available");
    }
    new Test().setVisible(true);


}

Reference : forum.codecall.net

参考: forum.codecall.net

回答by martinusadyh

If you want use Substance LookAndFeel in your application, the easy step is add SubstanceLookAndFeel jar into your library classpath (On NetBeans IDE just right click on library node, then add Substance.jar). After you add substance.jar, in your main application just add this code (before you launch main frame) :

如果您想在您的应用程序中使用 Substance LookAndFeel,简单的步骤是将 SubstanceLookAndFeel jar 添加到您的库类路径中(在 NetBeans IDE 上只需右键单击库节点,然后添加 Substance.jar)。添加substance.jar 后,在您的主应用程序中添加以下代码(在启动主框架之前):

    public static void main(String[] args) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            try {
                UIManager.setLookAndFeel(new SubstanceLookAndFeel());
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            } catch (UnsupportedLookAndFeelException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }
            new MainFrame();
        }
    });
}

If you want NetBeans IDE using Substance Look And Feel too, just put SubstanceLookAndFeel.jar in specific directory (ex. in /home/your-username/LAF/SubstanceLookAndFeel.jar) and launch NetBeans IDE with this command :

如果您也希望 NetBeans IDE 使用 Substance Look And Feel,只需将 SubstanceLookAndFeel.jar 放在特定目录中(例如在 /home/your-username/LAF/SubstanceLookAndFeel.jar 中)并使用以下命令启动 NetBeans IDE:

$ netbeans --cp:p /home/your-username/LAF/SubstanceLookAndFeel.jar --laf org.jvnet.substance.SubstanceLookAndFeel 

回答by rafuru

Sorry if is old but on Netbeans you can click with the secondary button on your project (right click), and go to Properties.

抱歉,如果是旧的,但在 Netbeans 上,您可以单击项目上的辅助按钮(右键单击),然后转到“属性”。

Next go to Appliation>Desktop Appand there you can change the look and feel :).

接下来转到应用程序>桌面应用程序,您可以在那里更改外观:)。