Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JComboBox导致运行时错误_Java_User Interface_Swing_Jcombobox - Fatal编程技术网

Java JComboBox导致运行时错误

Java JComboBox导致运行时错误,java,user-interface,swing,jcombobox,Java,User Interface,Swing,Jcombobox,我正在用Java进行一些GUI开发,当我添加以下代码时,我在初始化类时遇到了一个运行时错误: public class Search_Album_Main_Tab extends JPanel{ JComboBox search_list; JTextArea searched_data; JButton search_button; Results_Main_Tab rmt; Search_Action_Listener listener

我正在用Java进行一些GUI开发,当我添加以下代码时,我在初始化类时遇到了一个运行时错误:

public class Search_Album_Main_Tab extends JPanel{
    JComboBox   search_list;
    JTextArea   searched_data;
    JButton     search_button;
    Results_Main_Tab rmt;
    Search_Action_Listener listener;

    public Search_Album_Main_Tab(Results_Main_Tab results_main_tab)
    {
        String[] search_options = {"Album", "Artist", "Genre", "ID", "Year"};
        setLayout(new GridLayout(3,1));
        rmt = results_main_tab;
        listener = new Search_Action_Listener();

        /*  Searched data   */
        searched_data = new JTextArea();

        /*  Search button   */
        search_button = new JButton("Search Album");
        search_button.addActionListener(listener);

        /*  Drop down menu  */
        search_list = new JComboBox(search_options);

        add(search_list);
        add(searched_data);
        add(search_button);     
    }

    private class Search_Action_Listener implements ActionListener
    {

        public void actionPerformed(ActionEvent event) 
        {
            if (event.getSource() == search_button)
            {

            }

        }

    }

}
我得到的错误是:

dcm_gui.GUI at localhost:53806  
    Thread [main] (Suspended (exception NullPointerException))  
        CUIAquaComboBox.applySizeFor(JComponent, CoreUIConstants$Size) line: 454    
        CUIAquaUtilControlSize.applyUISizing(JComponent, CoreUIConstants$Size) line: 99 
        CUIAquaUtilControlSize.access$200(JComponent, CoreUIConstants$Size) line: 13    
        CUIAquaUtilControlSize$PropertySizeListener.applyComponentSize(JComponent, Object) line: 121    
        CUIAquaUtilControlSize.addSizePropertyListener(JComponent) line: 25 
        CUIAquaComboBox.installListeners() line: 47 
        CUIAquaComboBox(BasicComboBoxUI).installUI(JComponent) line: 229    
        CUIAquaComboBox.installUI(JComponent) line: 30  
        JComboBox(JComponent).setUI(ComponentUI) line: 653  
        JComboBox.setUI(ComboBoxUI) line: 238   
        JComboBox.updateUI() line: 247  
        JComboBox.init() line: 212  
        JComboBox.<init>(Object[]) line: 178    
        Search_Album_Main_Tab.<init>(Results_Main_Tab) line: 36 
        GUI.main(String[]) line: 28 
    Daemon Thread [AWT-AppKit] (Running)    
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java (Oct 10, 2010 11:55:27 PM) 
本地主机上的dcm_gui.gui:53806 线程[main](挂起(异常NullPointerException)) CUIAquaComboBox.applySizeFor(JComponent,CoreUIConstants$Size)行:454 CUIAkutilControlSize.applyUISizing(JComponent,CoreUIConstants$Size)行:99 CUIAkutilControlSize.access$200(JComponent,CoreUIConstants$Size)行:13 CUIAkutilControlSize$PropertySizeListener.applyComponentSize(JComponent,Object)行:121 CUIAkutilControlSize.addSizePropertyListener(JComponent)行:25 CUIAquaComboBox.installListeners()行:47 CUIAquaComboBox(基本ComboxUI).安装UI(JComponent)行:229 CUIAquaComboBox.installUI(JComponent)行:30 JComboBox(JComponent).setUI(ComponentUI)行:653 JComboBox.setUI(ComboBoxUI)行:238 JComboBox.updateUI()行:247 JComboBox.init()行:212 JComboBox.(对象[])行:178 搜索相册主选项卡。(结果主选项卡)行:36 GUI.main(字符串[])行:28 守护进程线程[AWT AppKit](正在运行) /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java(2010年10月10日晚上11:55:27) 有人知道为什么吗


Binyamin

这看起来像是您自定义外观的问题。在使用自定义外观时,我曾经遇到过类似的问题。这里描述的是:

这是针对JFileChooser小部件的,不是一个组合框,但它可能是相关的


您应该尝试的第一件事是恢复默认的“金属”外观。如果这样做有效,那么这可能是特定L&F的问题。我以前没有使用过CUIAqua L&F,但我认为这是官方的苹果Java L&F。你也可以尝试将其换成其他品牌。这是一款类似L&F的替代Mac电脑,它可能(取决于实际的bug)避免了这个问题。

我认为Erica关于非标准外观的看法是正确的
CUIAquaComboBox
听起来不像标准元素

如果您不确定正在使用什么样的look&feel(LAF),请调用
System.out.println(UIManager.getLookAndFeel())以进行检查

更重要的是,在GUI启动之前,尝试在主方法中调用此函数,看看它是否会有所不同:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

这将为您当前的操作系统使用本机LAF(如果可以找到—如果您使用的是Windows、Mac、Linux、Solaris等,这应该可以正常工作)

您试图调用
搜索相册\u主\u选项卡中
的对象的方法或访问该对象的字段。第36行是什么?谢谢,我可以看到,但是我没有看到任何在使用之前没有初始化的东西。在这个特定的例子中,我使用了一个定义了字符串数组的构造函数,搜索选项是一个字符串数组:
string[]搜索选项={“唱片集”、“艺术家”、“流派”、“ID”、“年份”}您是否尝试使用自定义外观?这是我的第一个GUI实现,所以我不确定,除了AWT和Swing软件包之外,我没有使用任何东西,它们是否被视为“外观”的一部分?