Добавить строку в jTable - Java
Формулировка задачи:
Как я понял jTable - аналог DataGridView в C# (Если я не прав, то скажите мне что не так). Как добавит туда строку?
Господин Шилдт написал что нужно использовать оператор final. Но уж как-то больно непонятно это смотрится в коде. Есть ли другой оператор? Опять же какой-нибудь аналог DataGridView1.AddRow().
Сразу же беда. Вторую строчку таким образом уже не добавляет)
Решение задачи: «Добавить строку в jTable»
textual
Листинг программы
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
/**
* @author Drygba
* Date: 02.02.13
*/
public class AddTable extends JFrame{
//myData будет хранилищем для наших данных,
// ArrayList используется просто для примера
private ArrayList<String[]> myData;
private MyModel model; // наша модель таблицы
private int countNewRow = 0; // счетчик новых строк
public AddTable(){
super("Add Table");
createFrame();
}
public static void main(String[] arg){
AddTable at = new AddTable();
JTable full = at.createTable();
at.add(new JScrollPane(full));
at.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
at.pack();
at.setVisible(true);
}
public void createFrame(){
setLayout(new BorderLayout());
JButton addButon = new JButton("Add Data");
addButon.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
//добавляем данные через модель таблицы
model.setValueAt(new String[]{ "новая" + String.valueOf(countNewRow),
"новая" + String.valueOf(countNewRow)
, "новая" + String.valueOf(countNewRow) });
countNewRow++;
}
});
add(addButon, BorderLayout.SOUTH);
}
public JTable createTable(){
myData = new ArrayList<String[]>();
myData.add(new String[]{ "1", "2", "3" });
myData.add(new String[]{ "11", "21", "31" });
myData.add(new String[]{ "12", "22", "32" });
myData.add(new String[]{ "13", "23", "33" });
model = new MyModel(myData);//создаем модель таблицы и предаем начальные данные
JTable table = new JTable(model);//создаем таблицу и передаем туда модель
return table;
}
}