Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable swing ID迭代器_Java_Swing_Jtable - Fatal编程技术网

Java JTable swing ID迭代器

Java JTable swing ID迭代器,java,swing,jtable,Java,Swing,Jtable,我是SwingJava新手。我有一个JTable,它有3列(ID、state、age),我有一个表单,其中有2个JTextField和一个JButton,当我单击按钮时,一行将添加到我的JTable中,但我希望ID以1进行迭代,例如,当我第一次单击ID为0时,当我再次单击时,如果输入新数据,ID将变为1(0+1)。 有没有函数可以获取第0列最后一行的单元格值?如果JTable在第一次运行时为空,如何初始化Id? 这是我的源代码 String[] columnNames = { "ID", "st

我是SwingJava新手。我有一个JTable,它有3列(ID、state、age),我有一个表单,其中有2个JTextField和一个JButton,当我单击按钮时,一行将添加到我的JTable中,但我希望ID以1进行迭代,例如,当我第一次单击ID为0时,当我再次单击时,如果输入新数据,ID将变为1(0+1)。 有没有函数可以获取第0列最后一行的单元格值?如果JTable在第一次运行时为空,如何初始化Id? 这是我的源代码

String[] columnNames = { "ID", "state", "age" };

    int[] columnsWidth = { 188, 500, 100 };
    table = new JTable(
            new DefaultTableModel(new Object[][] {}, columnNames));
 JScrollPane scrollPane = new JScrollPane(table);
    table.setFillsViewportHeight(true);
    tableau.setLayout(new BorderLayout());
    tableau.add(scrollPane, BorderLayout.CENTER);

    logaffich.add(tableau);
按钮的代码

  boutonround.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
DefaultTableModel tm = (DefaultTableModel) table.getModel();

            String numcam = age.getText();
            // Int c=0;
            String desc = display.getSelectedItem().toString();

            tm.addRow(new Object[] { new String(c), new String(desc),
                    new String(numcam) });
            table.setModel(tm);}

只需执行以下操作,即可获得比最后一行多一个的ID,如果没有行,则为0:

int value = tm.getRowCount() == 0 ? 0 : 
    Integer.parseInt((String)tm.getValueAt(tm.getRowCount() - 1, 0)) + 1;

另外,不需要执行
table.setModel(tm)
;表格模型在进行更改时会自动更新表格。

我稍微修改了您的建议,效果良好,非常感谢