2011-01-12 12 views
0

DBからデータを表示するためにJListを使用するJava Swingアプリケーションがあります。私はこのようにリストのデータモデルとしてDefaulListModelを使用していますJListがアイテムを表示していないか、選択的に表示しています

void PopulateSoldiersList() 
{ 
     try 
     { 
      soldiersListModel = new DefaultListModel(); 
      for (Soldier i : myBackEnd.GetAllSoldiers()) 
      { 
       soldiersListModel.addElement(i); 
      } 
      this.listSoldiers.setModel(soldiersListModel); 
     } 
     catch (Exception ex) {// Error Message} 
} 

そして、いくつかの理由で、リストがちょうど空のまま

...

私も、実行時に確認してくださいましたすべてのデータがデータモデルで適切に設定され、JListの "dataModel"プロパティにも設定されていることを確認してください。他の場所で

アプリで、私は同様の問題を持っていますが、そこに、時々リストは、モデルからいくつかの項目を表示し(しかし、それらのすべてではない)

私はどこここから行くには考えています。..

助けてください。 ありがとう!

+0

'Soldier'クラスに' toString'メソッドが定義されていますか? – Starkey

+0

これを行うときにこのリストは既に表示されていますか?これは初期化時ですか? –

+0

はい、もちろんです。リストは可視で、私はtoStringを実装しました。一番奇妙なことは、1時間前までは完全に機能していて、アイテムの表示を停止することです。 –

答えて

0

誤ったアラーム。

私は本当に自分を殺す必要があります。

私は別のリストを持っていますが、私は両方のリストに同じようなメソッドを設定しています。

実際には、私は上記のメソッドiをコピーして貼り付けただけで、他のリストにデータを入れることができます。私の無限の知恵で

私は一つのことを変更するのを忘れ:私は...

データモデルを設定していたリストの名前は、だから私は、同じリストを作成する二つの方法になってしまいました。有効なデータを持つfirs 1つと、2番目のデータは空のデータで上書きされます。

と...私は方法を何と呼ばれるために私のためにコピー&ペースト

myBackEnd = new DBBackEnd(); 
initComponents(); 
PopulateSoldiersList(); 
PopulateMissionsList(); 

これ以上を推測しません!

+1

コードセクションをコピーして貼り付け、変数名だけを変更する場合。私はあなたが止めて考えてみることをお勧めします(これは私が複数回呼び出すメソッドですか?)。 – jzd

+0

あなたは正しいです。通常私はあなたが期待するものを正確に行います - 一つの一般的な方法を作ります。しかし、各リストは異なるデータソースから移入されるので、私はそれぞれ別のメソッドを書くことに決めました。 –

+0

私は実生活プロジェクトで実際に学んだことは、コピー&ペーストは邪悪以上ということです。あなたは毎回、行ごとに実際に調べるべきです。 – alexander

関連する問題