2016-11-05 40 views
0

我有一個對象Person。該對象位於列表中。 現在我想插入數據vorname,nachnamealter into 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

您應該製作新的AbstractTableModel() http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

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