我正在做一個任務,我正在做一個生成20個隨機數的程序,並將它們放置在一個數組列表,一個哈希集和一個樹形結構集中。它應該在JList1中顯示這些數字。然後,我將使用HashSet僅顯示唯一的數字,TreeSet顯示已排序的數字。我製作了三個JList,併爲它們中的每一個都創建了一個函數來更新GUI(這可能是一種更簡單的方法,但是由於我對Java相當陌生,所以我可以提出這一點)。因此,例如用我updateGUI功能在我的JList顯示數組列表如下:使用TreeSet對JList進行排序
public void updateGUI(JList someList, ArrayList<Integer> anyarraylist){
DefaultListModel m = new DefaultListModel();
for (Object s : anyarraylist) {
m.addElement(s);
}
someList.setModel(m);
}
我然後調用該函數時,我使用的ActionEvent按下一個按鈕:
@Override
public void actionPerformed(ActionEvent arg0) {
generateNumbers();
this.updateGUI(this.numbers1, numberlist);
哪裏generateNumbers是我的函數生成20個隨機數,numbers1是我的第一個JList,numberlist是我的數組列表的名稱。
我爲HashSet做了幾乎完全相同的事情來顯示帶有唯一數字的JList,它工作正常。然而,我然後試圖做同樣的TreeSet,它給了我一個「線程異常」AWT-EventQueue-0「java.lang.NullPointerException」 - 錯誤。功能如下所示:
public void oppdaterGUI3(JList someList, TreeSet<Integer> anysortedlist){
DefaultListModel m = new DefaultListModel();
for (Object s : anysortedlist) {
m.addElement(s);
}
someList.setModel(m);
}
爲什麼不能正常工作?我認爲TreeSet的工作方式與HashSet相同。任何幫助表示讚賞。如有必要,我可以發佈完整的錯誤和代碼。
謝謝。
你不能真正期待一個全面和有意義的答案,缺少這麼多的信息。請更新您的問題。 – kriegaex 2013-02-26 20:32:24