2016-04-14 9 views
0

私はSwing Projectのためにfleetmanagmentを作成する必要があります。追加ボタンを作成しましたが、削除ボタンを作成する必要はありません。ここに私のAddbuttonのコードがあります。Swing - AddボタンJList

addbutton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent event) { 
      //make sure you preserve the previously selected list items 
      int size = rightlist.getModel().getSize(); 
      Set objects = new LinkedHashSet(); 
      for (int i = 0; i < size; i++) { 
       objects.add(rightlist.getModel().getElementAt(i)); 
      } 
      objects.addAll(Arrays.asList(leftlistfreight.getSelectedValues())); 

      rightlist.setListData(objects.toArray()); 
     } 
    }); 

EDIT!

のArrayListコード

List<FreightBoats> freightBoat = new ArrayList<FreightBoats>(); 
    freightBoat.add(new FreightBoats("Boat Name : Stefan |","This Boat can Carry Conitainer : ",25000)); 
    freightBoat.add(new FreightBoats("Boat Name : Sminroff |","This Boat can Carry Conitainer : ",30000)); 
    freightBoat.add(new FreightBoats("Boat Name : Container 2000 |","This Boat can Carry Conitainer : ",2500)); 
    freightBoat.add(new FreightBoats("Boat Name : Windows |","This Boat can Carry Conitainer : ",25200)); 
    freightBoat.add(new FreightBoats("Boat Name : Unhuman |","This Boat can Carry Conitainer : ",200)); 
    freightBoat.add(new FreightBoats("Boat Name : ElPolako |","This Boat can Carry Conitainer : ",300000)); 
    freightBoat.add(new FreightBoats("Boat Name : BrainDead |","This Boat can Carry Conitainer : ",10000)); 
    freightBoat.add(new FreightBoats("Boat Name : WSHR | ","This Boat can Carry Conitainer : ",34005)); 
    freightBoat.add(new FreightBoats("Boat Name : Grolsch ","This Boat can Carry Conitainer : ",10565 

答えて

1

は、配列またはのArrayListを再生しないでください。 setListData()メソッドを使用してListModelを再作成する必要はありません。

代わりにListModelに直接更新する必要があります。

How to Use ListsのSwingチュートリアルのセクションを読んでください。 ListDemoの例では、 "Hire"ボタンと "Fire"ボタンを使用してListModelからアイテムを「追加」と「削除」する方法を示します。

+0

私はArrayListビーコンを使用する必要があると思います。私はボートの名前を配列に保持しています。私は配列コードを入れました。それをチェックし、私が使用できる別の選択肢があるかどうかを教えてください。ありがとう。 –

+1

@JohnJohnson、「私はArrayListビーコンを使う必要があると思う。私はボートの名前を配列で保持する。アプリケーションの設計が間違っています。 JListにデータを表示すると、そのデータはListModelに格納されます。別の配列は必要ありません。 「別の代替手段がある場合」 - Swingコンポーネントの設計と使用はModel-View-Controllerの設計に基づいています。私はすでに適切な解決策を提案し、実際の例を指摘しました。別のArrayを使用することは、この設計原則に反します。配列の必要はありません。 ListModelには、データにアクセスするためのメソッドがあります。 – camickr

関連する問題