10

JListコンポーネントからデータを取得するための解決策を探していましたが、何も見つかりませんでした。その項目を返すJlistのメソッドはありますか? 私は選択したものだけを望んでいません。リスト全体が欲しい。

その理由は、リスト ボックスの選択された値に基づいて、ダイアログ ボックスのすべてのコンポーネントを更新するこのメソッドがあるからです。そのリスト ボックスを同じメソッドから更新したい。そのためには、メソッドが呼び出されるたびにリスト ボックスを更新しないようにする必要があります。リスト ボックスの値を、1 つのクラスに格納されている最新のデータと比較する必要があります (それ以外の場合は無限ループに入ります)。リスト ボックスのデータがクラスのデータと一致しない場合にのみ、更新されます。

リストボックスのすべてのデータを取得する方法はありますか?

4

3 に答える 3

14

getModel() メソッドを使用してモデル データを取得してから、ListModel 内のメソッドを使用してすべてのデータ要素を取得する必要があります。

ListModel model = list.getModel();

for(int i=0; i < model.getSize(); i++){
     Object o =  model.getElementAt(i);  
}

http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html#getModel()

http://docs.oracle.com/javase/6/docs/api/javax/swing/ListModel.html

于 2013-03-22T11:02:26.273 に答える
4

getModel選択を取得するには、との組み合わせを使用する必要があります。getSelectedIndices

ListModel model = jListInstance.getModel();

for(int index : jListInstance.getSelectedIndices()) {
    System.out.println(model.getElementAt(index));
}
于 2013-03-22T11:07:12.000 に答える
1

getModel()メソッドを使用して、JList に含まれるデータ モデルを取得します。List モデルは、次の方法でトラバースできます。

ListModel list = jListObj.getModel();
for(int i = 0; i < list.getSize(); i++){
     Object obj = list.getElemenetAt(i);
}

http://docs.oracle.com/javase/6/docs/api/javax/swing/ListModel.html http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html #getModel%28%29

于 2013-03-22T11:10:37.390 に答える