【问题标题】:JTable swing ID iteratorJTable swing ID 迭代器
【发布时间】:2013-11-06 16:25:28
【问题描述】:

我是 Swing Java 的新手。我有一个包含 3 列(ID、状态、年龄)的 JTable,我有一个包含 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);}

【问题讨论】:

    标签: java swing jtable


    【解决方案1】:

    您可以获得比最后一行多一个的 ID,如果没有行,则为 0,只需这样做:

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

    另外,不用table.setModel(tm);表模型在发生更改时会自动更新表。

    【讨论】:

    • 我稍微修改了你的建议,效果很好,非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2014-05-31
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多