私は、20個の乱数を生成し、それらを配列リスト、ハッシュセット、およびツリーセットに配置するプログラムを作成する割り当てを行っています。JList1にそれらの番号を表示することになっています。次に、HashSetを使用して一意の数値のみを表示し、TreeSetを使用してソートされた数値を表示します。私は3つのJListを作成し、それぞれに1つの関数を作成してGUIを更新しました(これを行うにはおそらくもっと簡単な方法がありますが、Javaにまったく慣れていないため、思いつくのはそれだけです)。したがって、たとえば、JListに配列リストを表示するために使用されるupdateGUI関数は、次のようになります。
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と同じように機能すると思いました。どんな助けでも大歓迎です。必要に応じて、完全なエラーとコードを投稿できます。
ありがとうございました。