2016-11-14 13 views
0

JListの項目として動的に適用したい文字列の配列があります。配列内の項目は頻繁に変更されるため、Jlistモデルも変更する必要があります。私は間違って何をやっているforループを使用してJList値を設定する

listAvail = new JList(); 
    listAvail.setBorder(
      new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null)); 
    listAvail.setModel(new AbstractListModel() 
    { 

     String[] values = new String[5]; 

     for (int i = 0; i < 5; i++) 
     { 
      values[i] = "Feature" + i; 
     } 


     public int getSize() 
     { 
      return values.length; 
     } 

     public Object getElementAt(int index) 
     { 
      return values[index]; 
     } 
    }); 
    scrollPane.setViewportView(listAvail); 

:私はこのようなものでそのコードを交換したい

listAvail = new JList(); 
    listAvail.setBorder(
      new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null)); 
    listAvail.setModel(new AbstractListModel() 
    { 
     String[] values = new String[] { "Feature 1", "Feature 2", "Feature 3", "Feature 4", 
       "Feature 5" }; 

     public int getSize() 
     { 
      return values.length; 
     } 

     public Object getElementAt(int index) 
     { 
      return values[index]; 
     } 
    }); 
    scrollPane.setViewportView(listAvail); 

:これは私が今持っているものの一例ですか?

+0

1)すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 2)*「私は間違っていますか?」*何がうまくいかないのですか?私たちはあなたのコンピュータの前に座っていないふりをして読者に気を取られません。何が起こると思いますか?実際に何が起こったのですか? –

+0

こんにちは、これらのチュートリアル(http://www.dickbaldwin.com/java/Java209.htm)を見てみることをお勧めしたいと思います(これらのJThingsについて学ぶ際には確かに助けになりました。あなたがJListの使い方を誤解していると思い、ListModelが何であるかと思っているからです。 – Feillen

答えて

2

カスタムListModelを作成しないでください。

DefaultListModelを使用できます。それにはadd(...)remove(...)のようなメソッドがあり、データを動的に更新することができます。

+0

それは私が全力でやっていたはずのことです。私は本当に助けに感謝します! – Chris

関連する問題