想要添加点击鼠标右键弹出菜单,然后实现删除功能,不知道怎么给JTable添加监听器

解决方案 »

  1.   

    查查api里,addactionlisten。。好像是这个吧还有类似的方法、
      

  2.   


     final JPopupMenu popupMenu = new JPopupMenu();
            JMenuItem deleteRow = new JMenuItem("delete");
            popupMenu.add(deleteRow);
            deleteRow.addActionListener(new ActionListener()
            {            @Override
                public void actionPerformed(ActionEvent e)
                {
                    // TODO
                }
            });
            jTable.add(popupMenu);
            
            jTable.addMouseListener(new MouseAdapter()
            {
                @Override
                public void mouseClicked(MouseEvent e)
                {
                 // 右键事件
                    if (MouseEvent.BUTTON3 == e.getButton())
                    {
                        popupMenu.show(jTable, e.getPoint().x, e.getPoint().y);
                    }
                }
            });
      

  3.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class JTableFrame extends JFrame
    {
    private Object[][] data = new Object[][] {{1, 2, 3}, {4, 5, 6}};
    private Object[] columns = new Object[] {"一", "二", "三"};
    private JTable table = new JTable(data, columns);
    private JPopupMenu popup = new JPopupMenu();
    private JMenuItem itemDelete = new JMenuItem("删除");

    public JTableFrame()
    {
    popup.add(itemDelete);
    itemDelete.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent event)
    {
    table.setValueAt(null, table.getSelectedRow(), table.getSelectedColumn());
    }
    });
    table.setRowSelectionAllowed(true);
    table.setColumnSelectionAllowed(true);
    table.addMouseListener(new MouseAdapter()
    {
    public void mouseClicked(MouseEvent event)
    {
    if (event.getButton() == MouseEvent.BUTTON3)
    {
    int row = table.rowAtPoint(event.getPoint());
    int col = table.columnAtPoint(event.getPoint());
    table.setRowSelectionInterval(row, row);
    table.setColumnSelectionInterval(col, col);
    popup.show(table, event.getX(), event.getY());
    }
    }
    });
    add(new JScrollPane(table));
    }

    public static void main(String[] args)
    {
    JFrame frame = new JTableFrame();
    frame.pack();
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }