Jtable添加菜单
package com.batc.ecn.icon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.util.Vector; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JTable; import javax.swing.event.MouseInputListener; import javax.swing.table.DefaultTableModel; public class JtableMenu implements ActionListener { private JTable table; private JPopupMenu popup = new JPopupMenu(); private String[] menuStrs = { "增加", "删除"}; public JtableMenu(JTable table) { this.table = table; for (String menuStr : menuStrs) { JMenuItem menu = new JMenuItem(menuStr); menu.addActionListener(this); popup.add(menu); } init(); } private void init() { MouseInputListener mil = new MouseInputListener() { public void mouseReleased(MouseEvent e) { if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0 && !e.isControlDown() && !e.isShiftDown()) { popup.show(table, e.getX(), e.getY()); } } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { } }; table.addMouseListener(mil); table.addMouseMotionListener(mil); } @Override public void actionPerformed(ActionEvent e) { DefaultTableModel model = (DefaultTableModel) table.getModel(); if (e.getActionCommand() == "增加") { model.insertRow(model.getRowCount(), new Vector<Object>(model .getColumnCount())); } if (e.getActionCommand() == "删除") { int selectedRow = table.getSelectedRow();// 获得选中行的索引 if (selectedRow != -1) // 存在选中行 { model.removeRow(selectedRow); // 删除行 } } } }