jTable добавить несколько строк
Я пытаюсь добавить несколько строк в JTable
, у меня есть jTable1
и хочу добавить некоторые результаты jTable2
, Вот мой код:
DefaultTableModel model = new DefaultTableModel();
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
model.addColumn("id");
model.addColumn("miestas");
model.addColumn("adresas");
model.addColumn("pavadinimas");
model.addColumn("kaina");
model.addColumn("kiekis");
model.addColumn("data");
int i=jTable1.getSelectedRow();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
jXDatePicker1.setFormats(dateFormat);
String date = dateFormat.format(jXDatePicker1.getDate()).toString();
String c1=jTable1.getValueAt(i, 0).toString();
String c2=jTable1.getValueAt(i, 1).toString();
String c3=jTable1.getValueAt(i, 2).toString();
String c4=jTable1.getValueAt(i, 3).toString();
String c5=price.getText().toString();
String c6=jTextField1.getText().toString();
String c7=date;
model.addRow(new Object[]{c1, c2, c3, c4, c5, c6, c7});
jTable2.setModel(model);
}
Первая строка будет добавлена просто отлично, но когда я добавлю вторую, она также добавит пустые столбцы справа, строки режима, которые я пытаюсь добавить, добавят 7 пустых столбцов сбоку.
2 ответа
Решение
Это потому, что вы продолжаете добавлять столбцы в модель
model.addColumn("id");
model.addColumn("miestas");
model.addColumn("adresas");
model.addColumn("pavadinimas");
model.addColumn("kaina");
model.addColumn("kiekis");
model.addColumn("data");
Повторяется каждый раз, когда вы вызываете метод
Вы можете сделать это
public class ClassName {
String[] columns = {"ID", "miestas", "adresas", "pavadinimas", "kaina", "kiekis", "data"};
DefaultTableModel model;
public ClassName() {
model = new DefaultTableModel(columns, 0); //sets columns and number of rows once
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
int i = jTable1.getSelectedRow();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
jXDatePicker1.setFormats(dateFormat);
String date = dateFormat.format(jXDatePicker1.getDate()).toString();
String c1 = jTable1.getValueAt(i, 0).toString();
String c2 = jTable1.getValueAt(i, 1).toString();
String c3 = jTable1.getValueAt(i, 2).toString();
String c4 = jTable1.getValueAt(i, 3).toString();
String c5 = price.getText().toString();
String c6 = jTextField1.getText().toString();
String c7 = date;
model.addRow(new Object[]{c1, c2, c3, c4, c5, c6, c7});
jTable2.setModel(model);
}
}