public lyridisplay (java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();//to create a JList
/* folowing code inside try preforms DB operations*/
/*It will return array of string s*/
try {
s = insert.select();
} catch (ClassNotFoundException ex) {
Logger.getLogger(lyridisplay.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(lyridisplay.class.getName()).log(Level.SEVERE, null, ex);
}
//now set the string s to JList
jList1.setModel(new javax.swing.AbstractListModel() {
String[] strings =s;
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
}
EDT
上記のコードは、セットアップ前のDB操作のためにブロックする必要があると思いますが、JList
実行さEDT
れません。プログラムはスムーズに実行されます。以前に同様のことを行った結果、プログラムがブロックされEDT
てフリーズしました。 SOユーザーのアドバイスに従って、別のスレッドでコードを作成します。なぜこのコードはブロックされないのEDT
ですか?