2011-10-24 4 views
1

DefaultListModelとJListを使ってアイテムのリストを表示しようとしていますが、私のウィンドウは空です。エラーは何ですか?DefaultListModelとJListを使ってリストを表示

public class ViewInventoryInterface extends JFrame { 
    private Inventory theInventory; // reference to back end 
    private InventoryUPCIterator iter; 
    private DefaultListModel dlm; 
    private JList list; 
    private JScrollPane scroll; 

    public ViewInventoryInterface(Inventory theInventory) { 
     this.theInventory = theInventory; 
     iter = theInventory.inventoryUPCIterator(); //returns an iterator for the inventory 
     dlm = new DefaultListModel(); 
     while (iter.hasNext()) { 
      dlm.addElement(iter.next().toString()); 
     } 
     list = new JList(dlm); 
     scroll = new JScrollPane(list); 
     setTitle("Inventory"); 
     setSize(400, 400); 
     setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     setLocationRelativeTo(null); 
     setVisible(true);  
    } 
} 

答えて

4

最初の問題は、あなたのフレームには何も追加していないことが考えられます。

はコードを参照してください。スクロールペインをフレームに追加するには、getContentPane().add(...)などを使用します。

レイアウトマネージャによっては、追加のパラメータを追加する必要がありますが、デフォルトのBorderLayoutを追加するだけで効果があります。

+0

ありがとうございます、今はキーを表示していますが、キーが参照する項目は表示されません。どうすれば修正できますか? – trs

+3

Java5以上からのContentPaneコールは必要ありません。単純な追加(JComponent)+1 – mKorbel

+1

@trsあなたは 'DefaultListModel'にキーを追加しているようです。キー以外のものを表示するには、異なる文字列表現を作成するか、独自のリストモデル( 'DefaultListModel'をサブクラス化する)を作成し、キーとアイテムを追加し、独自の' ListCellRenderer'実装を提供する必要があります。 – Thomas

関連する問題