2016-11-05 6 views
0

私はオブジェクトPersonを持っています。このオブジェクトはリストにあります。 、ナック名に変更し、jTableに挿入します。オブジェクトからjTableにデータを挿入するには?

どうすればいいですか?

public MainForm() { 
    eintragenButton.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 

      personList = personAnlegen.PersonAnlegen(
        textFieldVorname.getText(), 
        textFieldNachname.getText(), 
        textFieldAlter.getText() 
      ); 

      String[] spaltenueberschrift = {"Vorname", "Nachname","Alter"}; 
      String[][] inhalt; 

      for (int i = 0; i < personList.size(); i++) { 
       inhalt[i][i] = personList.get(0).getVorname(), personList.get(0).getNachname(), personList.get(0).getAlter(); 
      } 

      tablePersonen = new JTable(); 
      scrollPane.setViewportView(tablePersonen); 

      DefaultTableModel tableModel = new DefaultTableModel(
        inhalt, 
        spaltenueberschrift 
      ); 
      tablePersonen.setModel(tableModel); 
     } 
    }); 
} 

答えて

1

私は私のオブジェクト「人」このオブジェクトはリストに

である基本的にListは、カスタムTableModelの一部である必要があります。

あなたはPersonオブジェクトのカスタムTableModelを作成する必要があります。

これを行う方法については、ステップバイステップアプローチのRow Table Modelをご覧ください。

さらに、一般的なコードを再利用できるように、より一般的なTableModelを作成する方法も示しています。

+0

はあなたに感謝 私はそれをしようとします。 – user6590187

-1

あなたは http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

)(新しいAbstractTableModelにをしなければなりません
personList = personAnlegen.PersonAnlegen(
      textFieldVorname.getText(), 
      textFieldNachname.getText(), 
      textFieldAlter.getText() 
    ); 

    String[] spaltenueberschrift = {"Vorname", "Nachname","Alter"}; 
    String[][] inhalt; 

    for (int i = 0; i < personList.size(); i++) { 
     inhalt[i][i] = personList.get(0).getVorname(), personList.get(0).getNachname(), personList.get(0).getAlter(); 
    } 

    tablePersonen = new JTable(); 
    scrollPane.setViewportView(tablePersonen); 

    tablePersonen.setModel(new AbstractTableModel() { 

     @Override 
     public Object getValueAt(int rowIndex, int columnIndex) { 
      return inhalt[rowIndex][columnIndex]; 
     } 


     @Override 
     public int getRowCount() { 
      return inhalt.length; 
     } 

     @Override 
     public int getColumnCount() { 

      return spaltenueberschrift.length; 
     } 

     public String getColumnName(int col) { 
      return spaltenueberschrift[col]; 
     } 
    }); 
+0

(1-)にデータを取得するには、テーブルに表示するデータをTableModelに完全に格納する必要があります。これがどのように行われているかを理解するために私のリンクに従ってください。 – camickr

+0

お試しいただきありがとうございます – user6590187

関連する問題