2017-06-11 4 views
-1

こんにちは私は私のコードで私のミスは、後に一つだけのプレーヤーに私を見るのテーブルを開くここで私は理解できない少しの助けのためのいくつかを尋ねたいすべてのJavaはJTableのショーをスイングだけ1行/ライン

/** 
* Create the frame. 
*/ 
public Player() 
{ 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setBounds(100, 100, 316, 475); 
    contentPane = new JPanel(); 
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
    contentPane.setLayout(new BorderLayout(0, 0)); 
    setContentPane(contentPane); 
    // create table with data 
    // headers for the table 
    column = new String[] 
    { 
     "Id", 
     "Name", 
     "level", 
     "Part Time" 
    };  
    for (L2PcInstance pc : L2World.getInstance().getPlayers()) 
    { 
     if (pc.isOnline() && ((pc.getClient() != null) && !pc.getClient().isDetached())) 
     { 
      // actual data for the table in a 2d array 
      data = new Object[][] 
      { 
       { 
        pc.getId(), 
        pc.getName(), 
        pc.getLevel(), 
        false 
       }, 
      }; 
     } 
    } 
    // create table with data 
    JTable table = new JTable(data, column); 
    contentPane.add(table, BorderLayout.NORTH); 

} 

}

すべてのあなたの時間に感謝:)と悪い英語

+0

すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –

+0

これをインスタンス化して使用する残りのコードを含めて、他の人がデバッグを助けるようにしてください。 –

+0

私たちに投稿する[最小実行可能コード](https://stackoverflow.com/help/mcve) – 1ac0

答えて

2

のため申し訳ありませんが、あなたのロジックについて考えてみよう。

forループでは、 "データ"配列の新しいインスタンスを作成し続けます。したがって、作成する最後のインスタンスには、最後の行のデータのみが含まれます。あなたがデータを読んで今、データの各行は、モデルに追加され

DefaultTableModel model = new DefaultTableModel(column, 0); 

for (every row) 
{ 
    Object[] row = {....}; 

    model.addRow(row); 
} 

JTable table = new JTable(model); 

あなたのロジックは次のように変更する必要があります。

関連する問題