在教程中阅读有关JList的更多信息。
这是一个简单的例子。 我使用JList和DefaultListModel以及基于DefaultListCellRenderer自定义渲染器。 我写了自己的学校课程,由你自己替换。
class Example extends JFrame {
private DefaultListModel model;
private School[] schools;
public Example() {
schools = new School[]{
new School("test1",1),
new School("test2",2),
new School("test3",3),
};
JList list = new JList<>(model = new DefaultListModel<>());
for(School school : schools){
model.addElement(school);
}
list.setCellRenderer(getCellRenderer());
add(new JScrollPane(list));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private ListCellRenderer super School> getCellRenderer() {
return new DefaultListCellRenderer(){
@Override
public Component getListCellRendererComponent(JList> list,
Object value, int index, boolean isSelected,
boolean cellHasFocus) {
School s = (School) value;
Component listCellRendererComponent = super.getListCellRendererComponent(list, s.getNumber()+"/"+s.getName(), index, isSelected,cellHasFocus);
return listCellRendererComponent;
}
};
}
public static void main(String...strings ){
new Example();
}
}
我的School类:
public class School {
private String name;
private Integer number;
public School(String name, Integer number){
this.setName(name);
this.setNumber(number);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
}
结果: