Delete Selected Row From JTable Using JPopupMenu


/ Published in: Java
Save to your folder(s)

The following code snippet shows how to remove a row from a JTable component. The example uses a DefaultTableModel object to bind data to a JTable.


Copy this code and paste it in your HTML
  1. import javax.swing.*;
  2. import java.awt.event.*;
  3. import javax.swing.table.DefaultTableModel;
  4.  
  5. class Program extends JFrame{
  6. public static void main(String args[]){
  7. Program main = new Program();
  8. main.setVisible(true);
  9. }
  10.  
  11. public Program(){
  12. super("JTable Demo");
  13.  
  14. new Object[][]
  15. {
  16. { "1", "John", "Smith", "[email protected]" },
  17. { "2", "Suzan", "Carter", "[email protected]" },
  18. { "3", "Abdul", "Latif", "[email protected]" },
  19. { "4", "Jia", "Lou", "[email protected]" }
  20. },
  21. new Object[]
  22. {
  23. "Employee Id", "First Name", "Last Name", "Email"
  24. }
  25. );
  26.  
  27. JTable table = new JTable(dtm);
  28.  
  29. ActionListener menuListener = new ActionListener() {
  30. public void actionPerformed(ActionEvent event) {
  31. DefaultTableModel dtm = (DefaultTableModel) table.getModel();
  32. int selRow = table.getSelectedRow();
  33.  
  34. if(selRow > -1){
  35. dtm.removeRow(selRow);
  36. }
  37. }
  38. };
  39.  
  40. table.addMouseListener(new MouseAdapter(){
  41. public void mouseReleased(MouseEvent e) {
  42. if (e.isPopupTrigger() && e.getComponent() instanceof JTable ){
  43.  
  44. JPopupMenu popup = new JPopupMenu();
  45.  
  46. JMenuItem menuItem = new JMenuItem("Delete");
  47. menuItem.addActionListener(menuListener);
  48.  
  49. popup.add(menuItem);
  50. popup.show(e.getComponent(), e.getX(), e.getY());
  51. }
  52. }
  53. });
  54.  
  55. this.getContentPane().add(table);
  56. this.setSize(400,400);
  57. }
  58. }

URL: http://www.hostprojects.net/snippets/java/154/delete-selected-row-from-jtable-using-jpopupmenu

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.