如何在java swing中将对象列表显示为JList?

dgiusagp  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(136)

我们被要求在Java Swing中构建一个系统,没有拖放,我不能理解如何在JList中显示对象列表。我有一个GUI类,它创建了一个JFrame,JPanel和一个空的JList以及一个带有对象列表的逻辑类,我需要通过字段创建更多的student对象,并在JList中显示它们,然后添加到现有的studentsList中(类型为ArrayList<Students>)。我应该将我的JList声明为JList对象类型Students吗?我找不到如何将JList与对象列表连接的信息。我唯一的想法是从输入字段数据创建新的Student对象并将其传递给logic.stundentsList。但如何在GUI中将其显示为JList?

dgtucam1

dgtucam11#

1.创建要显示的对象的列表。
1.创建DefaultListModel对象以存储列表中的对象。
1.创建一个JList对象并将其模型设置为DefaultListModel。
1.将JList添加到JScrollPane,以便在列表很长时允许滚动。
1.将JScrollPane添加到容器(如JFrame或JPanel)中以显示JList。

public class Example extends JFrame {
    
    public Example() {
        // Create a list of strings
        List<String> items = new ArrayList<>();
        items.add("Item 1");
        items.add("Item 2");
        items.add("Item 3");
        
        // Create a DefaultListModel to store the strings
        DefaultListModel<String> listModel = new DefaultListModel<>();
        for (String item : items) {
            listModel.addElement(item);
        }
        
        // Create a JList and set its model to the DefaultListModel
        JList<String> jList = new JList<>(listModel);
        
        // Add the JList to a JScrollPane to allow for scrolling
        JScrollPane scrollPane = new JScrollPane(jList);
        
        // Add the JScrollPane to a container such as a JFrame or JPanel
        JPanel panel = new JPanel();
        panel.add(scrollPane);
        add(panel);
        
        // Set the JFrame properties
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Example");
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
}

相关问题