如何将对象中的数据插入到jTable中?

时间:2016-11-05 16:21:40

标签: java swing jtable

我有一个对象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);
        }
    });
}

3 个答案:

答案 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];
        }
    });