0

私はSwing Javaの初心者です。3 つの列 (ID、状態、年齢) を持つ JTable があり、2 つの JTextField と JButton を持つフォームがあります。ボタンをクリックすると、JTable に行が追加されますが、ID を反復処理したいたとえば、最初に 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);}
4

1 に答える 1

2

これを行うだけで、最後の行より1つ多いID、行がない場合は0のIDを取得できます。

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

また、する必要はありませんtable.setModel(tm)。テーブル モデルは、変更が加えられるとテーブルを自動的に更新します。

于 2013-11-06T16:35:27.657 に答える