gpt4 book ai didi

java - 在 jlist 中显示集合

转载 作者:行者123 更新时间:2023-12-02 06:32:56 25 4
gpt4 key购买 nike

我的学校是另一个类(class)中的学校对象数组。

我一生都无法在 JList 中添加并显示此数组。

 public class SchoolChooser extends JPanel {

private School[] schools;

有什么帮助吗?谢谢。

最佳答案

tutorial 中了解有关 JList 的更多信息.

这是给您的简单示例。我将 JListDefaultListModel 和基于 DefaultListCellRenderer 的自定义渲染器结合使用。我写了我自己的学校类(class),用你的替换它。

class Example extends JFrame {

private DefaultListModel<School> model;
private School[] schools;

public Example() {
schools = new School[]{
new School("test1",1),
new School("test2",2),
new School("test3",3),
};
JList<School> 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();
}

}

我的学校类(class):

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

}

结果:

enter image description here

关于java - 在 jlist 中显示集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com