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);

След изпълнение на кода той дава елемента, който е включен по подразбиране. Искам да вмъкна елемента динамично чрез код, как мога да направя това. Опитах да използвам

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

Но списъкът не се актуализира. Как мога да го актуализирам динамично.


person Nikhil Kadam    schedule 02.02.2015    source източник


Отговори (2)


Започнете, като се отървете от 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);

Вие създавате нов екземпляр на JList, който няма нищо общо с екземпляра, който е на екрана

person MadProgrammer    schedule 02.02.2015
comment
След като се отървете от jList1 = нов JList(модел); Дава ми грешка при изключение на нулев указател. - person Nikhil Kadam; 02.02.2015
comment
Помислете за предоставяне на изпълним пример, който демонстрира вашия проблем. Това ще доведе до по-малко объркване и по-добри отговори - И се уверете, че initComponents се извиква първо - person MadProgrammer; 02.02.2015
comment
Благодаря ви, най-накрая извиках initComponents и там ми даде изключение за нулев указател. сега кодът работи... - person Nikhil Kadam; 02.02.2015

Не за добавяне на елемент Динамично можете да използвате даден код

  DefaultListModel model = (DefaultListModel)jList1.getModel();
  model.addElement("Element " + count++);
person Kunal Kishor    schedule 02.02.2015
comment
Моделът все още съдържа стойностите по подразбиране, предоставени от NetBeans, бих предположил, въз основа на това, което OP изглежда се опитва да направи, те искат първо да изчистят режима. Също така бих казал, че ако не сте внимателни, кастингът не винаги е добра идея ;) - person MadProgrammer; 02.02.2015