Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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 Don';我无法理解ComboBox的NullPointerException_Java_Swing_Model_Nullpointerexception_Jcombobox - Fatal编程技术网

Java Don';我无法理解ComboBox的NullPointerException

Java Don';我无法理解ComboBox的NullPointerException,java,swing,model,nullpointerexception,jcombobox,Java,Swing,Model,Nullpointerexception,Jcombobox,我不明白为什么我会得到这个NullPointerException。我从外观大不相同的代码开始(并改进到您看到的代码),所有这些都是为了修复这个bug,但我就是不知道发生了什么 非常感谢所有帮助: final JComboBox modelName = null; //Model ComboBoxModel final DefaultComboBoxModel termModel = new DefaultComboBoxModel(new String[]{ "Choose One.

我不明白为什么我会得到这个NullPointerException。我从外观大不相同的代码开始(并改进到您看到的代码),所有这些都是为了修复这个bug,但我就是不知道发生了什么

非常感谢所有帮助:

final JComboBox modelName = null;

//Model ComboBoxModel
final DefaultComboBoxModel termModel = new DefaultComboBoxModel(new String[]{
    "Choose One...", "Hypercom", "DejaVoo", "Nurit", "Verifone"});

...

// model drop-down      
    modelName.setModel(termModel);  //getting nullPointerException on this line

    modelName.addActionListener(this);              

    modelPanel.add(modelName);

...

@Override
public void actionPerformed(ActionEvent e) {
    if ("Hypercom".equals(modelName.getSelectedItem())){
        termName.setModel(hSpecModel);    
    } else if ("Deja Voo".equals(modelName.getSelectedItem())){
        termName.setModel(dSpecModel);    
    } else if ("Nurit".equals(modelName.getSelectedItem())){
        termName.setModel(nSpecModel);
    } else if ("Verifone".equals(modelName.getSelectedItem())){
        termName.setModel(vSpecModel);
    } else {
        termName.setModel(slctAbove);
    }
}

modelName
尚未初始化,因此它不指向对象

你需要像这样的东西

final JComboBox modelName = new JComboBox();
当您尝试使用此变量时,您真的不应该奇怪为什么会得到NPE:

modelName.setModel(termModel);

边学习边学习。。。我以为“modelName.setModel(termModel);”会覆盖“null”。@WizardKnight:那(或任何东西)会如何覆盖null?必须先用引用初始化变量,然后才能使用它,就像我说的,边做边学。这个论坛实际上是一个巨大的帮助。再次感谢你在我学习的过程中。。。我认为“modelName.setModel(termModel);”会覆盖“null”。非常感谢,我想我已经盯着这个太久了,这真的是在打每个人的脸,除了我:)Swing标签被删除了,因为这个问题与Swing无关,而与基本Java有关。
modelName.setModel(termModel);