Jtabel选中删除

来源:互联网 发布:龙之研究能量矩阵 编辑:程序博客网 时间:2024/05/22 03:50
package jtabelExc;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.MouseEvent;


import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.event.MouseInputListener;
import javax.swing.table.DefaultTableModel;


public class Demo {


public static JTable table;
public static JPopupMenu popupMenu;


public static void main(String[] args) {
JFrame frame = new JFrame();


popupMenu = new JPopupMenu();
JMenuItem modifyItem = new JMenuItem("Modify");
popupMenu.add(modifyItem);
String[] tableTitleArray = { "ID", "Name", "Sex" };
Object[][] body = new Object[6][tableTitleArray.length];
for (int i = 0; i < 6; i++) {
body[i][0] = i;
body[i][1] = "张三";
body[i][2] = "男";
}
table = new JTable(new DefaultTableModel(body, tableTitleArray));
final MouseInputListener mouseInputListener = getMouseInputListener(table);// 添加鼠标右键选择行
table.addMouseListener(mouseInputListener);
table.addMouseMotionListener(mouseInputListener);


frame.getContentPane().add(table, BorderLayout.CENTER);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(new Dimension(640, 480));
frame.setVisible(true);
}


/*
* 添加鼠标右键单击选择监听,并显示右键菜单
*/
private static MouseInputListener getMouseInputListener(final JTable jTable) {
return new MouseInputListener() {
public void mouseClicked(MouseEvent e) {
processEvent(e);
}


public void mousePressed(MouseEvent e) {
processEvent(e);
}


public void mouseReleased(MouseEvent e) {
processEvent(e);
if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0
&& !e.isControlDown() && !e.isShiftDown()) {
popupMenu.show(table, e.getX(), e.getY());// 右键菜单显示
}
}


public void mouseEntered(MouseEvent e) {
processEvent(e);
}


public void mouseExited(MouseEvent e) {
processEvent(e);
}


public void mouseDragged(MouseEvent e) {
processEvent(e);
}


public void mouseMoved(MouseEvent e) {
processEvent(e);
}


private void processEvent(MouseEvent e) {
if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {
int modifiers = e.getModifiers();
modifiers -= MouseEvent.BUTTON3_MASK;
modifiers |= MouseEvent.BUTTON1_MASK;
MouseEvent ne = new MouseEvent(e.getComponent(), e.getID(),
e.getWhen(), modifiers, e.getX(), e.getY(), e
.getClickCount(), false);
jTable.dispatchEvent(ne);
}
}
};
}


}
0 0
原创粉丝点击