[英]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.