Как добавить строку данных в Jtable из значений, полученных из jtextfield и comboboxes

У меня есть форма JFrame, которая имеет JTextField s, JCombobox и т.д., и я могу получить эти значения для переменных, и теперь я хочу добавить полученные данные в JTable в новую строку, когда пользователь клики Добавить или что-то в этом роде.

Я создал JTable, используя net- beans, проблема в том, что будет кодом для добавления данных из этой переменной в строки таблицы. Был бы оценен базовый пример. Я пробовал множество примеров и добавил код ActionListener в JButton, но ничего не происходит. Примеры, которые я пробовал. Как добавить строку в JTable? и Как добавить строки в JTable с помощью метода AbstractTableModel?

Любая помощь будет оценена.

Ответ 1

Учебник Peeskillet lame для работы с JTables в NetBeans GUI Builder

  • Установить заголовки столбцов таблицы
    • Выделите таблицу в представлении, а затем перейдите в панель свойств справа. Должна быть вкладка с надписью "Свойства". Не забудьте выделить таблицу, а не панель прокрутки, окружающую ее, или следующий шаг не будет работать.
    • Нажмите кнопку ... справа от свойства модели. Должно появиться диалоговое окно.
    • Установите строки в 0, установите количество нужных столбцов и их имена.
  • Добавить кнопку в рамку где-нибудь. Эта кнопка будет нажата, когда пользователь будет готов отправить строку

    • Щелкните правой кнопкой мыши на кнопке и выберите Events -> Action -> actionPerformed
    • Вы должны увидеть код, похожий на следующие автоматически созданные

      private void jButton1ActionPerformed(java.awt.event.ActionEvent) {}
      
  • jTable1 будет иметь DefaultTableModel. Вы можете добавить строки в модель с вашими данными.

    private void jButton1ActionPerformed(java.awt.event.ActionEvent) {
        String data1 = something1.getSomething();
        String data2 = something2.getSomething();
        String data3 = something3.getSomething();
        String data4 = something4.getSomething();
    
        Object[] row = { data1, data2, data3, data4 };
    
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    
        model.addRow(row);
    
        // clear the entries.
    }
    

Итак, для каждого набора данных, например, из нескольких текстовых полей, поля со списком и флажка, вы можете собирать эти данные каждый раз при нажатии кнопки и добавлять их в виде строки к модели.

Ответ 2

вы можете использовать этот код в качестве шаблона, пожалуйста, настройте его согласно вашему требованию.

DefaultTableModel model = new DefaultTableModel();
List<String> list = new ArrayList<String>();

list.add(textField.getText());
list.add(comboBox.getSelectedItem());

model.addRow(list.toArray());

table.setModel(model);

здесь DefaultTableModel используется для добавления строк в JTable, вы можете получить дополнительную информацию здесь.