动态更新Jlist

nik*_*way 3 java swing jlist

我是新手.我在面板中拖放了Jlist组件.它生成的代码是

jList1 = new javax.swing.JList();
jList1.setModel(new javax.swing.AbstractListModel() {
    String[] strings = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};

    public int getSize() {
        return strings.length;
    }

    public Object getElementAt(int i) {
        return strings[i];
    }
});
jScrollPane1.setViewportView(jList1);
Run Code Online (Sandbox Code Playgroud)

执行代码后,它会给出默认包含的元素.我想通过代码动态插入元素,我该怎么做.我试过用

DefaultListModel model = new DefaultListModel();
jList1 = new JList(model);
for (int i = 0; i < 15; i++) {
    model.addElement("Element " + i);
}
jList1.setModel(model);
Run Code Online (Sandbox Code Playgroud)

但该列表没有更新.如何动态更新它.

Mad*_*mer 5

开始jList1 = new JList(model);创建新的后摆脱DefaultListModel

DefaultListModel model = new DefaultListModel();
//jList1 = new JList(model);
for (int i = 0; i < 15; i++) {
    model.addElement("Element " + i);
}
jList1.setModel(model);
Run Code Online (Sandbox Code Playgroud)

您正在创建一个新实例,JList该实例与屏幕上的实例无关

  • 考虑提供一个[runnable example](https://stackoverflow.com/help/mcve)来演示您的问题.这将减少混淆和更好的响应 - 并确保首先调用`initComponents` (2认同)