0

I have written this code to add and delete a row in my table using popup menu, but this code neither delete nor add a row to the table when I click respective options (ADD and DELETE) on popup menu, please help.

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


    public class B extends MouseAdapter {

        JFrame frame = new JFrame();
        Object rows[][] = new Object[5][3];
        String colums[] = {"A","B","C"};
        DefaultTableModel model = new DefaultTableModel(rows,colums);
        JTable table = new JTable(model);
        JScrollPane scroll = new JScrollPane(table);
        JPopupMenu popup = new JPopupMenu();
        JMenuItem item1 = new JMenuItem("ADD");
        JMenuItem item2 = new JMenuItem("DELETE");
        Object[] row = {"Column 1", "Column 2", "Column 3"};

        public static void main(String arg[]) {
            new B();
        }

        B() {
            frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
            table.addMouseListener(this);
            item1.addMouseListener(this);
            item2.addMouseListener(this);
            popup.add(item1);
            popup.add(item2);
            table.add(popup);
            frame.add(scroll);
            frame.setVisible(true);
        }

        public void mouseClicked(MouseEvent click) {

            if(click.getSource()==table && click.getButton()==3)    
                popup.show(table,click.getX(),click.getY());
            else if(click.getSource()==item1)
                model.addRow(row);
            else if(click.getSource()==item2)
                model.removeRow( table.rowAtPoint(click.getPoint()) );
        }

    }
Kiki
  • 2,243
  • 5
  • 30
  • 43
Raees Khan
  • 371
  • 1
  • 5
  • 20
  • 1
    Please do not ask same question twice : http://stackoverflow.com/questions/28523584/jpopupmenu-is-not-displayed-on-right-click – Ramesh Kotha Feb 15 '15 at 10:02

1 Answers1

0

Instead of comparing objects using == (to compare references of two components) you should use equals method . So change the following from:

click.getSource()==table 

To

click.getSource().equals(table)
SMA
  • 36,381
  • 8
  • 49
  • 73