//右击弹出菜单
if (SwingUtilities.isRightMouseButton(e)) {
JPopupMenu popMenu = null ;
JTable table = (JTable) e.getComponent();
//获取鼠标右键选中的行
int row = table.rowAtPoint(e.getPoint());
if (row == -1) {
return ;
}
//获取已选中的行
int[] rows = table.getSelectedRows();
boolean inSelected = false ;
//判断当前右键所在行是否已选中
for(int r : rows){
if(row == r){
inSelected = true ;
break ;
}
}
//当前鼠标右键点击所在行不被选中则高亮显示选中行
if(!inSelected){
table.setRowSelectionInterval(row, row);
}
//生成右键菜单
popMenu = makePopup();
popMenu.show(e.getComponent(), e.getX(), e.getY());
}
当右键所在位置非选中行,则将选中行切换到鼠标右键位置对于的行。
本文介绍如何在Java Swing的JTable中实现鼠标右键菜单功能,并确保当右键点击的位置不在已选中行上时,能自动切换选中状态到鼠标所在行。
3107

被折叠的 条评论
为什么被折叠?



