ボタンを押したときに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