![](/img/trans.png)
[英]Java - How do I select items in JList 2 based on selection in JList 1?
[英]How do I refresh a JList?
我正在制作一个将名称添加到列表的 GUI,然后我在主框架上有一个 JList。 当我点击另一帧上的按钮时,我希望它更新 JList 以显示最近添加到 arraylist 的字符串
ArrayList:
private static ArrayList<String> name = new ArrayList<String>();
清单:
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);
}
}
});
我建议你使用 ListModel/TreeModel 来处理 JList、JTree 等。
在那里你可以做这样的事情:
DefaultListModel listModel = new DefaultListModel(name);
JList jList = new JList(listModel); //or setListModel(listModel)
当你想更新它时,你可以使用reload()
、 validate()
或refresh()
。 所以你可以刷新列表的model,一切都会好起来的。 或者您可以创建新的 listModel 并设置您想要显示的新值。
由于该问题与 Stackoverflow 上的其他问题类似,您可以查看此链接,这应该对您有所帮助:
还要检查您的相关问题。 我希望我是有帮助的。
在过去的两天里,我一直在搜索数十个关于 SO 的答案,试图解决这个问题。 这里的其他人建议致电yourJList.ensureIndexIsVisible(yourModel.getSize());
,但是这对我不起作用。
对我有用的是调用yourJList.requestFocus();
addElement(String);
. 希望这对某些人有所帮助,因为我对此感到非常沮丧。
编辑:更改命名约定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.