Я пытался обновить содержимое JList при нажатии кнопки. Итак, я очистил модель списка, затем очистил список, а затем приступил к добавлению новых значений в список. Вот раздели код:Окно обновления JList на кнопке
testList.java
public class testList extends javax.swing.JFrame {
private Thread t;
public DefaultListModel model;
public boolean first = true;
public testList() {
model = new DefaultListModel();
initComponents();
this.centre(this);
}
public static void centre(javax.swing.JFrame f) {
Dimension us = f.getSize(), them = Toolkit.getDefaultToolkit().getScreenSize();
int newX = (them.width - us.width)/2;
int newY = (them.height - us.height)/2;
f.setLocation(newX, newY);
}
class updateList implements Runnable {
public void run() {
tmp.getTheList();
model.clear();
ouputList.removeAll();
for (int i = 0; i < tmp.returnList.size(); i++) {
model.addElement(tmp.returnList.get(i));
}
if (first) {
chList.setModel(model);
}
}
}
private void initComponents() {
// generated by NetBeans 6.9
}
private void buttonActionPerformed(java.awt.event.ActionEvent evt) {
t = new Thread(new updateList(), "List Updater");
t.start();
}
public static void main(String args[]) {
tmp = new aC();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new chapList().setVisible(true);
}
});
}
static aC tmp;
private javax.swing.JButton button;
public static javax.swing.JList outputList;
private javax.swing.JScrollPane jScrollPane1;
}
ac.java
public class aC extends testList {
ArrayList returnList = new ArrayList();
void getTheList() {
returnList.clear();
generateList();
}
void generateList() {
// populate returnList with random values of random size using returnlist.add()
}
}
Проблема я столкнулся в том, что когда список создан в первый раз, он обновляет JList. Когда кнопка снова нажимается, JList иногда обновляется. И для дальнейших нажатий кнопки в JList ничего не отображается.
Может ли кто-нибудь помочь мне выяснить, что вызывает эту проблему? Спасибо.
Если вам разрешено, запустите свои имена классов заглавными буквами. Это соглашение, которое использует большинство разработчиков Java, и поэтому многие разработчики Java упрощают чтение вашего кода. –
Спасибо, что сообщили мне. Я буду менять имена классов. – Monk