繁体   English   中英

Java JList不显示元素

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM