버튼을 눌렀을 때 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