私はJavaでプログラミングしているEclipseを使用しています。問題は:JListへのArrayList - 複数のオブジェクト要素
1 - Dante
2 - William
3 - Jaime
etc...
は今、数字は、オブジェクトのIDであり、名前はよく、名前のとおりです。
これは私が私のJListを表示したい方法です。
ArrayListの名前はTraitListです。
これは私がEclipseの[ウィンドウビルダーからのJListの「モデル」プロパティとしてという置くときに私が得るものです:
TraitL.setModel(new AbstractListModel() {
String [] values = new String [];
for (int jln = 0; jln < TraitList.size(); jln++){
values [jln] = (TraitList.get(jln).id + " - " + TraitList.get(jln).Name);
}
public int getSize() {
return values.length;
}
public Object getElementAt(int index) {
return values[index];
}
});
それ:
TraitL.setModel(new AbstractListModel() {
String [] values = new String[] {"1 - Dante", "2 - William", "3 - Jaime"};
public int getSize() {
return values.length;
}
public Object getElementAt(int index) {
return values[index];
}
});
だから私はそれを変更うまくいかなかった。私は数十種類の変種を試しました。何も働かなかった。だから、どのように私はオブジェクトの複数の要素をこのリストで表示させるのですか?私はそれがDefaultListModelかAbstractListModelか、あるいはListModelであれば気にしません。 ありがとうございます。
編集:私が試したものにすべての行のエラーは、次の画像である:
ボーナス質問:何かが起こるよう がどのように私は、このリストの要素に「のactionPerformed」をクリックして作るのですか私はそれをクリックした後?
実際にどのようなエラーが発生しているかを言うと、この質問は簡単に答えることができます。とにかく、Guilhermeの答えで言及されているエラー以外の問題の原因の1つは、 'TraitList'がリストであるクラス内の' id'と 'Name'がパブリックフィールドであるかどうかです。そうでない場合は、取得するためにゲッターを使用する必要があります。もしそうであれば、おそらくカプセル化について読むべきでしょう。 –
Guilhermeの提案に対する質問を画像として追加しました。 また、私はTraitクラスのフィールドに公的または私的な分類を与えていないので、それらは公開されていると思います。私はカプセル化を読むでしょう。それをはっきりと覚えていない、それは長い時間前に勉強した。 – Werneck