繁体   English   中英

在jlist中显示集合

[英]Displaying collection in jlist

我有一些学校,这是一系列学校课程。

我不能为我的生活添加并在JList中显示这个数组。

 public class SchoolChooser extends JPanel {

      private School[] schools;

有帮助吗? 谢谢。

教程中阅读有关JList的更多信息。

这是一个简单的例子。 我使用JListDefaultListModel以及基于DefaultListCellRenderer自定义渲染器。 我写了自己的学校课程,由你自己替换。

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

}

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

}

结果:

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM