setSelectedItem方法不起作用

时间:2013-06-13 18:21:24

标签: java swing jcombobox

我遇到了JComboBox的setSelectedItem方法的问题。它只是不工作。这是我的代码;我的车站和分部课程还可以。所以它们不包括在内。 无论我尝试什么,我都无法在ComboBox中设置一个项目;

//ListItem Class

public class ListItem {
private String id;
private String value;

public ListItem()
{

    id = "";
    value = "";
}
public ListItem(String id, String value)
{

    this.id = id;
    this.value = value;

}

public String getID(){return this.id;}
public String getValue() { return this.value;}

public void setID(String id ){this.id = id;}
public void setValue(String value) {this.value = value;}
@Override
public String toString()
{
    return value;
}


//show station
private void showSelectedStation(String stationCode){


    stationDA = new StationDA();
    station = stationDA.getStationByCode(stationCode);

    //Assign values to Division fields
    jtxtStationCode.setText(Integer.toString(station.getStationCode()));
    jtxtStationName.setText(station.getStationName());


    divisionDA = new DivisionDA();
    division = divisionDA.getDivisionByCode(station.getDivisionCode());



    ListItem myItem = new ListItem(
    division.getDivisionCode(), division.getDivisionName());


    jcbDivisionName.setSelectedItem(myItem); //not working.Only the first Value in the     list is showing


}

2 个答案:

答案 0 :(得分:1)

ListItem myItem = new ListItem(
division.getDivisionCode(), division.getDivisionName());
jcbDivisionName.setSelectedItem(myItem); 

您正在使用自定义对象。您需要实现equals()方法,以便comboBox选择正确的项目。

答案 1 :(得分:1)

ListItem必须实施equals方法,以便JComboBox可以匹配该项目。

类似的东西:

public class ListItem {
    //your code

    @Override
    public boolean equals(Object obj) {
        if (obj == null) 
            return false;
        if (!(obj instanceof ListItem)) 
            return false;

        ListItem other= (ListItem) obj;
        if (this.name.equals(other.name)) 
            return true;

        return false;
    }
}

假设您有名称字段。只需比较你想要比较的内容。