![](/img/trans.png)
[英]JList of TextFields and JScrollPane doesn't show / Java Swing
[英]Java JList doesn't show elements
我有一個JList,它應該顯示學校考試的列表。 當我在Swing Designer中向此列表添加值時,它會正確顯示所有內容,但是當我嘗試顯示自己的數據時,它仍顯示在Swing Designer中初始化的值。 如何在JList中顯示我自己的數據集? 我最初的代碼更新:
public void updateFrame(MainFrame mainFrame)
{
DefaultListModel<Test> listModel = new DefaultListModel<Test>();
for(int i = 0 ; i < this.getTestList().size() ; i++)
listModel.add(i, this.getTestList().get(i));
JList<Test> currList = new JList<>(listModel);
currList.setVisible(true);
mainFrame.setList(currList);
mainFrame.getList().setVisible(true);
}
另外,我的ListListener隨時都不會激活,但這是另一個問題,也許在第一個問題之后比較容易解決。
class ListListener implements ListSelectionListener {
@Override
public void valueChanged(ListSelectionEvent e) {
DefaultListModel<Test> listModel = new DefaultListModel<Test>();
for(Test test : model.getTestList())
listModel.addElement(test);
JList<Test> currList = new JList<Test>(listModel);
mainFrame.setList(currList);
}
}
同樣,不要交換組件,而要交換模型,例如:
public void updateFrame(MainFrame mainFrame) {
DefaultListModel<Test> listModel = new DefaultListModel<Test>();
for(int i = 0 ; i < this.getTestList().size() ; i++) {
listModel.add(i, this.getTestList().get(i));
}
// ***** get rid of this *****
// JList<Test> currList = new JList<>(listModel);
// currList.setVisible(true);
// mainFrame.setList(currList);
// ***** and instead simply do this *****
mainFrame.getList().setModel(listModel);
}
如果這不起作用,那么可以,創建並發布您的MCVE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.