JavaSwing_4.7: JPopupMenu(弹出菜单)
来源:互联网 发布:高仿mcm怎么在淘宝买 编辑:程序博客网 时间:2024/05/01 07:02
本文链接: http://blog.csdn.net/xietansheng/article/details/78079800
Java Swing 图形界面开发(目录)
1. 概述
官方JavaDocsApi: javax.swing.JPopupMenu
JPopupMenu
,弹出式菜单、右键菜单。
弹出菜单是一个可弹出并显示一系列选项的悬浮小窗口。在实际应用中通常通过单击鼠标右键触发弹出显示。
JPopupMenu 的使用和 JMenuBar 类似。
2. 代码实例
package com.xiets.swing;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;public class Main { public static void main(String[] args) { JFrame jf = new JFrame("测试窗口"); jf.setSize(300, 300); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel = new JPanel(); // 直接在内容面板上添加鼠标监听器 panel.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { // 鼠标点击(按下并抬起) } @Override public void mousePressed(MouseEvent e) { // 鼠标按下 } @Override public void mouseReleased(MouseEvent e) { // 鼠标释放 // 如果是鼠标右键,则显示弹出菜单 if (e.isMetaDown()) { showPopupMenu(e.getComponent(), e.getX(), e.getY()); } } @Override public void mouseEntered(MouseEvent e) { // 鼠标进入组件区域 } @Override public void mouseExited(MouseEvent e) { // 鼠标离开组件区域 } }); jf.setContentPane(panel); jf.setVisible(true); } public static void showPopupMenu(Component invoker, int x, int y) { // 创建 弹出菜单 对象 JPopupMenu popupMenu = new JPopupMenu(); // 创建 一级菜单 JMenuItem copyMenuItem = new JMenuItem("复制"); JMenuItem pasteMenuItem = new JMenuItem("粘贴"); JMenu editMenu = new JMenu("编辑"); // 需要 添加 二级子菜单 的 菜单,使用 JMenu JMenuItem fileMenu = new JMenuItem("文件"); // 创建 二级菜单 JMenuItem findMenuItem = new JMenuItem("查找"); JMenuItem replaceMenuItem = new JMenuItem("替换"); // 添加 二级菜单 到 "编辑"一级菜单 editMenu.add(findMenuItem); editMenu.add(replaceMenuItem); // 添加 一级菜单 到 弹出菜单 popupMenu.add(copyMenuItem); popupMenu.add(pasteMenuItem); popupMenu.addSeparator(); // 添加一条分隔符 popupMenu.add(editMenu); popupMenu.add(fileMenu); // 添加菜单项的点击监听器 copyMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("复制 被点击"); } }); findMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("查找 被点击"); } }); // ...... // 在指定位置显示弹出菜单 popupMenu.show(invoker, x, y); }}
结果展示:
阅读全文
1 0
- JavaSwing_4.7: JPopupMenu(弹出菜单)
- 巧用JPopupMenu(一)
- JList中添加右键菜单(JPopupMenu)
- JList中添加右键菜单(JPopupMenu)
- JavaSwing_4.1: JFrame(窗口)
- JavaSwing_4.2: JDialog(对话框)
- JavaSwing_4.5: JMenuBar(菜单栏)
- JavaSwing_4.6: JToolBar(工具栏)
- JavaSwing_4.8: JTable(表格)
- JavaSwing_4.9: JTree(树)
- JavaSwing_4.3: JFileChooser(文件选择器)
- JavaSwing_4.4: JColorChooser(颜色选择器)
- JavaSwing_4.10: JInternalFrame(内部窗口)
- 使用JPopupMenu作为提示以及创建带图像的菜单
- 弹出菜单(有弹出过程)
- 右键弹出菜单(oncontextmenu)
- (总结)Swing组件的使用---下拉式菜单(menu),弹出式菜单(JPopupMenu),选项卡窗体(JTabbedPane)
- 弹出菜单
- SQL事务回滚
- Kafka简介
- JavaScript--9.字符串拼接
- 第一周第二节课:算法及其描述
- windows10激活
- JavaSwing_4.7: JPopupMenu(弹出菜单)
- 网络理论(小白)
- 【动态规划】矩阵连乘问题
- JavaSwing_4.8: JTable(表格)
- 第三周第1次课
- 《C++ Primer》读书笔记第十二章-1-动态内存与智能指针
- 微服务架构的核心要点和实现原理
- 这是一个开始
- MYSQL查询优化