Java 如何刷新JList?
我正在制作一个GUI,将一个名称添加到列表中,然后在主框架上有一个JList,当我点击另一个框架上的按钮时,我希望它更新JList,以将最近添加的字符串显示到arraylist中 ArrayList:Java 如何刷新JList?,java,swing,arraylist,jframe,jlist,Java,Swing,Arraylist,Jframe,Jlist,我正在制作一个GUI,将一个名称添加到列表中,然后在主框架上有一个JList,当我点击另一个框架上的按钮时,我希望它更新JList,以将最近添加的字符串显示到arraylist中 ArrayList: private static ArrayList<String> name = new ArrayList<String>(); JButton我想更新列表: JButton btnAdd = new JButton("Add"); btnAdd.addActio
private static ArrayList<String> name = new ArrayList<String>();
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);
}
}
});
感谢您提前提供的帮助我建议您使用ListModel/TreeModel来处理JList、JTree等 在那里,您可以制作如下内容:
DefaultListModel listModel = new DefaultListModel(name);
JList jList = new JList(listModel); //or setListModel(listModel)
当您想要更新它时,您可以使用reload()
、validate()
或refresh()
。所以你可以刷新列表的模型,一切都会好起来的。
或者您可以创建新的listModel并设置要显示的新值
由于该问题与Stackoverflow上的其他问题类似,您可以查看此链接,这将有助于您:
同时检查与您的相关问题。我希望我能帮上忙。@Bravecity
当你想更新它时,你可以使用reload()、validate()或refresh()。
-不,不需要任何这些方法。您只需更新ListModel,模型就会告诉JList重新绘制自己。应始终对模型进行更改,而不是对外部数据源(即您的ArrayList)进行更改。如果这有助于解决问题,请参阅。1)请参阅2)更快地获得更好的帮助,发布或。
DefaultListModel listModel = new DefaultListModel(name);
JList jList = new JList(listModel); //or setListModel(listModel)