Reputation:
Sorry for being so amateur, I created a 'button' on a frame so that when we click the button for the first time, A ROW will be inserted on the frame. But ALL I WANT is that when I click the button THE SECOND TIME, the ROW IS REFRESHED (Not creating a new row!), I know that '.addRow(new Object[] { "", "", ""});' is the cause , because the object is created every time I click the button, so how could I possibly modify the code? Thanks for your attention.
*My weak brain said that if only I can empty 'model' object (or destroying the object, something like that), then I would find the solution, but how I could possibly empty/destroy that 'model' object?
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.DefaultTableModel;
public class MyTable extends JFrame {
private JTable table;
private DefaultTableModel model;
private JScrollPane scroll;
private JButton createRow;
private String headers[] = {"a", "b", "c"};
public MyTable() {
createRow = new JButton("Create Row");
model = new DefaultTableModel();
model.setColumnIdentifiers(headers);
table = new JTable();
table.setModel(model);
scroll = new JScrollPane(table);
add(createRow, java.awt.BorderLayout.NORTH);
add(scroll, java.awt.BorderLayout.CENTER);
createRowOn();
}
// while button is pressed then create A ROW
public void createRowOn() {
createRow.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == createRow) {
model.addRow(new Object[]{"", "", ""});
}
}
});
}
public static void main(String args[]) {
MyTable t = new MyTable();
t.setVisible(true);
t.setSize(300, 300);
}
}
Upvotes: 0
Views: 71
Reputation: 109813
Sorry for being so amateur
I created a 'button' on frame so that when we click the button for the first time, A ROW will be inserted on frame. But all i want that when i click the button on THE SECOND TIME , the ROW IS REFRESHED (Not creating a new row !) , i suspect 'new Object[] { "", "", ""}' is the cause , because the object is created everytime i click the button, so how could i possibly modify the code ?
not clear from question (nothing is added to JTable) if you want to:
add a new row (model.addRow)
remove all rows (setDataVector/setRowCount)
reset value in JTables view (setValueAt)
but everything is described in Oracle tutorial, rest in the DefaultTableModel
Upvotes: 5