2013-11-06 2 views
0

Я новичок в Swing Java. У меня есть JTable, который имеет 3 столбца (ID, состояние, возраст), у меня есть форма с 2 JTextField и JButton, когда я нажимаю кнопку, строка будет добавлена ​​в мой JTable, но я хочу, чтобы ID был итерацией 1, например, когда я нажимаю первый раз, когда Id равен 0, когда я нажимаю другое время с новыми введенными данными, Id wil становится 1 (0 + 1). Есть какая-либо функция, чтобы получить значение ячейки в последней строке в столбце 0? И как инициализировать Id, если JTable пуст для первого запуска? Вот мой исходный кодJTable swing 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);} 

ответ

2

Вы можете получить идентификатор, который является еще одним, чем в последней строке, и 0, если нет ни одной строки, просто делая это:

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

Кроме того, нет необходимости делать table.setModel(tm); модель таблицы автоматически обновляет таблицу при внесении изменений.

+0

Я немного изменил ваше предложение, и он отлично работает, спасибо вам большое –

Смежные вопросы