![](/img/trans.png)
[英]Update JList after removing all the elements from the model(AbstractListModel)
[英]Display JList elements from model
我有一个存储在DefaultListModel
中的要分配给JList
的Objects Person (int age, String name)
列表。
DefaultListModel model;
model = new DefaultListModel();
Person p = new Person(43,"Tom");
//insert in the model
model.add(size, p);
jList1.setModel(model);
我只想在JList
显示名称,但是如果不使用另一个Names列表(我希望避免使用该列表),就无法解决该问题。
有什么简单的方法告诉JList
要显示对象Person
哪个属性?
视图的显示应该是ListCellRenderer
的域
就像是...
public class PersonCellRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof Person) {
setText(((Person)value).getName());
}
return this;
}
}
要将渲染应用于列表,您需要执行以下操作:
jList1.setCellRenderer(new PersonCellRenderer());
有关更多信息,请看编写自定义单元格渲染器
只需重写Person类的toString()方法即可返回Person的名称。
DefaultListModel model;
model = new DefaultListModel();
Person p = new Person(43,"Tom");
//insert in the model
model.add(size, p);
jList1.setModel(model);
public class Person {
private int age;
private String name;
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public String getName() {
return name;
}
public String toString() {
return this.getName();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.