【发布时间】:2017-04-29 10:34:50
【问题描述】:
所以我有这个类“会员”:
package pkgData;
import java.io.Serializable;
public class Member implements Comparable<Member>, Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private String city;
public Member(String nameOfMember,String location) {
super();
this.name = nameOfMember;
this.city=location;
}
public String getNameOfMember() {
return name;
}
public String getLocationOfMember() {
return city;
}
public void setNameOfMember(String nameOfMember) {
this.name = nameOfMember;
}
@Override
public String toString() {
return name +", " + city;
}
@Override
public int compareTo(Member o) {
int result =this.getNameOfMember().compareTo(o.getNameOfMember());
if(result==0){
result = this.getLocationOfMember().compareTo(o.getLocationOfMember());
}
return result;
}
}
我有一个可编辑的 JComboBox,并且 ComboBox 的模型是 DefaultComboBoxModel。
所以问题是如果我投射 selectedItem:
Member nameOfMember = (Member)memberModel.getSelectedItem();
if(nameOfMember== null)
throw new Exception("please select a name and a location");
它只检查输入的字符串是否为空。如果我输入像“名称,位置”这样的字符串,我总是会得到字符串不能转换为成员的异常。我必须输入哪个字符串才能将字符串强制转换为成员?
这是我的 JComboBox:
private JComboBox<Member> getComboBoxMember() {
if (comboBoxMember == null) {
comboBoxMember = new JComboBox<Member>();
comboBoxMember.setEditable(true);
comboBoxMember.setModel(memberModel);
}
return comboBoxMember;
}
这里是全局变量:
private DefaultComboBoxModel<Member> memberModel;
private JComboBox<Member> comboBoxMember;
【问题讨论】:
标签: java casting jframe jcombobox