我有一个对象Person
。该对象位于List中。
现在我想将数据 vorname , nachname 和更改插入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);
}
});
}
答案 0 :(得分:1)
我有一个对象“Person”这个对象在List
中
基本上List
必须是自定义TableModel
的一部分。
您需要为TableModel
对象创建自定义Person
。
查看Row Table Model了解如何执行此操作的分步方法。
该链接还说明了如何制作更通用的TableModel
,以便您可以重复使用常用代码。
答案 1 :(得分:0)
&#34; Versuch死了&#34;试试这个
JTable tablePersonen = new JTable(inhalt, spaltenueberschrift);
JTable(Object [] [] rowData,Object [] columnNames)
openbooks(德语):http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_19_019.htm
答案 2 :(得分:-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];
}
});