在swing的开发中,对JTable的操作可能会用到在表中点击鼠标右键弹出一个菜单。
首先创建一个JPopupMenu
private void createPopupMenu() {
m_popupMenu = new JPopupMenu();
JMenuItem delMenItem = new JMenuItem();
delMenItem.setText(" 删除 ");
delMenItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
//该操作需要做的事
}
});
m_popupMenu.add(delMenItem);
}
然后为JTable对象添加点击事件
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
mouseRightButtonClick(evt);
}
//鼠标右键点击事件
private void mouseRightButtonClick(java.awt.event.MouseEvent evt) {
//判断是否为鼠标的BUTTON3按钮,BUTTON3为鼠标右键
if (evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
//通过点击位置找到点击为表格中的行
int focusedRowIndex = jTable1.rowAtPoint(evt.getPoint());
if (focusedRowIndex == -1) {
return;
}
//将表格所选项设为当前右键点击的行
jTable1.setRowSelectionInterval(focusedRowIndex, focusedRowIndex);
//弹出菜单
m_popupMenu.show(jTable1, evt.getX(), evt.getY());
}
}