Dynamically add a row to JTable in Java on press of Enter:-
/**
*
* @author Pramod . Choudhari || http://techwayz.com
*/import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
class BuildFrame{
private JFrame jf;
private JScrollPane js;
private JTable jt;
private DefaultTableModel mod;
private static int i=0;
public BuildFrame() {
System.out.println(“Constructor called”);
jf = new JFrame(“JTable Example #1″);
js = new JScrollPane();
jt = new JTable();
mod = new DefaultTableModel() {
@Override
public int getColumnCount() {
return 3;
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return “No”;
case 1:
return “Name”;
case 2:
return “Age”;
default:
return “Unknown”;
}
}
};
jt.setModel(mod);
jf.setSize(400, 300);
jf.setResizable(false);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setLocation(200, 300);
jf.add(js);
js.setViewportView(jt);
// add a Dummy row to our JTsable
mod.addRow(new Object[]{“1″,”Pramod”,”24″});
jt.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
jtKeyPressed(evt);
}
});
jf.setVisible(true);
}
private void jtKeyPressed(java.awt.event.KeyEvent evt) {
i = Integer.parseInt(mod.getValueAt(mod.getRowCount() - 1, 0).toString());
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
i++;
mod.addRow(new Object[]{String.valueOf(i),” “,” “});
}
}
}
public class JTables {
public static void main(String[] args) {
// TODO code application logic here
BuildFrame bf = new BuildFrame();
}
}
- Default constructor of the class BuildFrame would be called on executing the above code .
- The default Constructor of the class BuildFrame has the role of generating our Swing Components JFrame,JTable … etc .
- To detect enter key presss , we would be using KeyListener in our code …so that We can add a new row to our existing JTable on KeyPressed Event .
- In the first line we are adding a KeyListener to our JTable ..
- Now in the second line , we’re overriding keyPressed(KeyEvent evt) method .
- In the Third line , the method [ jtKeyPressed(evt); ]containing the code to handle the event i.e code to add a new row dynamically to the JTable is called .