Java 实现鼠标单击右键弹出菜单项
在界面的任意地方鼠标右键点击出现一个菜单项 "Intro",并且点击该项后弹出一个新窗口。
public class frame extends JFrame {
public frame() {
setTitle("title");
setSize(500, 500);
// JPopupMenu 用于创建和显示弹出菜单
JPopupMenu popupMenu = new JPopupMenu();
// JMenuItem 用于表示菜单中的一个操作选项,文本设置为"Intro"
JMenuItem introItem = new JMenuItem("Intro");
// 为JMenuItem 添加监听器
introItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showIntroWindow();
}
});
// 将菜单项添加到弹出菜单中
popupMenu.add(introItem);
// 右键点击事件
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
showPopupMenu(e);
}
@Override
public void mouseReleased(MouseEvent e) {
showPopupMenu(e);
}
private void showPopupMenu(MouseEvent e) {
if (e.isPopupTrigger()) { // 检查是否是右键点击,在点击位置显示弹出菜单
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
//popupMenu是一个JPopupMenu对象
//e.getComponent()获取事件源组件,e.getX()和e.getY()获取鼠标点击的坐标。
});
}}
点击菜单“Intro”后,弹出窗口,窗口可以定义如下:
//introduction窗口
private void showIntroWindow() {
JFrame newFrame = new JFrame("introduction");
newFrame.setSize(300, 300);
//other
}
// JFrame是Swing中用于创建窗口的类,作为顶级窗口容器,其中通常包含其他 UI 组件。
Swing是一个图形用户界面(Graphical User Interface, GUI)开发工具包。