2013-06-13 2 views
0

JComboBox의 setSelectedItem 메서드에 문제가 있습니다. 그것은 작동하지 않습니다. 여기 내 코드가 있습니다. 내 역과 부서 수업은 괜찮습니다. 그래서 그들은 포함되지 않습니다. 무엇을 시도하든 ComboBox에서 선택한 항목을 설정할 수 없습니다.setSelectedItem 메서드가 작동하지 않습니다.

//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 


} 

답변

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

사용자 지정 개체를 사용하고 있습니다. comboBox가 올바른 항목을 선택하려면 equals() 메서드를 구현해야합니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 나는 너를 이해한다고 생각하지 않아. 이 컨텍스트에서 equals 메서드를 어떻게 구현합니까? – unleashed

+0

@ user2483307, [숨겨진 데이터가있는 콤보 상자] (http://tips4java.wordpress.com/2013/02/18/combo-box-with-hidden-data/)를 참조하십시오. Item 클래스는 이것이 어떻게 수행 될 수 있는지 보여줍니다. 사실이 클래스는 내가하고있는 일을하기 위해 디자인 되었기 때문에 (코드에서 알 수있는 것부터)이 클래스를 사용할 수도 있습니다. – camickr

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; 
    } 
} 

는 이름 필드가 있다고 가정. 비교하고 싶은 것을 비교하십시오.

관련 문제