为什么getSelectedItem返回null?

时间:2016-09-30 10:16:22

标签: java

我只是新学习OOP抱歉这个基本帖子。当我试图获取JComboBox中所选项目的值时,我不知道为什么它会返回null。

public class AddEmployee extends javax.swing.JInternalFrame{
   public AddEmployee() 
    {
    initComponents();
    this.setSize(1100,500);
    setMonths();
    setJComboBoxProperties();
    check();
    }

    private void setMonths()
    {
       String[] monthsObj = {"January", "February", "March", "April", "May", "June", "July",
    "August", "September", "October", "November", "December"};

       DefaultComboBoxModel monthsModel = new DefaultComboBoxModel(monthsObj);

       cbMonths.setModel((ComboBoxModel)monthsModel);

    }

    private void setJComboBoxProperties()
    {
      cbMonths.setSelectedIndex(-1);
    }

    private String check()
    {
       String cb = (String)cbMonths.getSelectedItem();
       System.out.println(cb);
       return cb;
    }

}

我投了String cb所以它不会给我一个空的。但是我试图检查所选项目,但它给了我null。

2 个答案:

答案 0 :(得分:2)

初始化Combobox后调用setSelectedItem。请参阅documentation

  DefaultComboBoxModel monthsModel = new DefaultComboBoxModel(monthsObj);
  monthsModel.setSelectedItem('September');

答案 1 :(得分:2)

您正在呼叫cbMonths.setSelectedIndex(-1);。根据{{​​3}}。

,这不会将项目(null)设置为所选项目

在用户更改选择之前,getSelectedItem()将始终返回null。这是正确的,记录在案的行为。