我如何刷新JList?

时间:2017-09-14 12:54:41

标签: java swing arraylist jframe jlist

我正在制作一个GUI,为列表添加一个名称,然后我在主页上有一个JList,当我点击另一个帧上的按钮时,我希望它更新JList以显示最近添加的字符串到数组列表

的ArrayList:

private static ArrayList<String> name = new ArrayList<String>();

JList的:

JList lisName = new JList(name.toArray());

JButton我想更新列表:

JButton btnAdd = new JButton("Add");
    btnAdd.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if(txtName.getText() == null) {
                JOptionPane.showMessageDialog(pnlName, "Error: Please enter name!");
            }else{
                name.add(txtName.getText());
                nameFrame.setVisible(false);
            }

        }

    });

感谢您提前提供任何帮助

1 个答案:

答案 0 :(得分:1)

我建议你使用ListModel / TreeModel来处理JList,JTree等。

你可以做这样的事情:

DefaultListModel listModel = new DefaultListModel(name);
JList jList = new JList(listModel); //or setListModel(listModel)

如果您想要更新它,可以使用reload()validate()refresh()。所以你可以刷新列表的模型,一切都会好的。 或者您可以创建新的listModel并设置您想要显示的新值。

由于问题类似于Stackoverflow上的其他问题,您可以查看此链接,这应该可以帮助您:

同时检查相关问题。我希望我能提供帮助。