我有一个问题,我正在使用带有 CellRenderer 的 JComboBox 来显示我的类 AddressNode 的值。但是,当我从 DropDown 中选择一个项目时,它会将对象值插入 EditorComponent 而不是渲染值。我的 CellRenderer 的代码如下:
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof AddressNode) {
AddressNode node = (AddressNode) value;
String displayString = "";
displayString += node.getStreet() + " " + node.getHouse();
if (node.getCity() != null)
displayString += (", " + node.getCity());
if (node.getPostCode() != null)
displayString += (" " + node.getPostCode());
setText(displayString);
}
return this;
}
例如,当我从下拉列表中选择一个项目时,它会将 EditorComponent 的值设置为类似:Model.AddressNode@581280a8。而我希望它将值设置为与 CellRenderer 显示的相同的字符串。