Java JComboBox导致运行时错误
我正在用Java进行一些GUI开发,当我添加以下代码时,我在初始化类时遇到了一个运行时错误: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
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软件包之外,我没有使用任何东西,它们是否被视为“外观”的一部分?