概述
今天我们学习如何用java做出右键弹出菜单的效果,如下图所示:
这里我们可以通过右击,弹出菜单,通过点击某一菜单性,可以给窗体设置背景颜色。
---------------------------------------------------------------------------------------
step1:
任务描述:搭建界面窗口框架
编辑类:TestJPopupMenu.class
- package test;
- import java.awt.Color;
- import javax.swing.JFrame;
- public class TestJPopupMenu extends JFrame {
- public TestJPopupMenu() {
- // 窗口的默认背景色为白色
- getContentPane().setColor.white); < /span>
- // 设置窗口标题
- setTitle("右键弹出菜单");
- // 设置窗口位置和大小。
- setBounds(200, 200, 400, 300);
- // 设置窗口为可视
- setVisible(true);
- // 关闭窗口时退出程序
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public static void main(String[] args) {
- new TestJPopupMenu();
- }
- }
效果图:
---------------------------------------------------------------------------------------
step2:
任务描述:创建弹出菜单,并添加窗口的鼠标事件处理
编辑类:TestJPopupMenu.class
- package test;
- import java.awt.Color;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import javax.swing.JFrame;
- import javax.swing.JPopupMenu;
- public class TestJPopupMenu extends JFrame {
- private JPopupMenu popupMenu;
- public TestJPopupMenu() {
- popupMenu = new JPopupMenu(); // 实例化弹出菜单
- addMouseListener(new MouseAdapter() { // 窗口的鼠标事件处理
- public void mouseReleased(MouseEvent event) { // 释放鼠标
- if (event.isPopupTrigger()) // 如果是弹出菜单事件(根据平台不同可能不同)
- popupMenu.show(event.getComponent(), event.getX(), event
- .getY()); // 显示菜单
- }
- });
- // 窗口的默认背景色为白色
- getContentPane().setColor.white); < /span>
- // 设置窗口标题
- setTitle("右键弹出菜单");
- // 设置窗口位置和大小。
- setBounds(200, 200, 400, 300);
- // 设置窗口为可视
- setVisible(true);
- // 关闭窗口时退出程序
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public static void main(String[] args) {
- new TestJPopupMenu();
- }
- }
右击窗口界面,有不是很明显的小点,或者用后台输出来判断代码生效。
效果图:
---------------------------------------------------------------------------------------
step3:
任务描述:创建弹出菜单中的菜单项,并把各菜单项添加到菜单中
编辑类:TestJPopupMenu.class
- package test;
- import java.awt.Color;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import javax.swing.JFrame;
- import javax.swing.JMenuItem;
- import javax.swing.JPopupMenu;
- public class TestJPopupMenu extends JFrame {
- private JPopupMenu popupMenu;
- /** 菜单项 **/
- private JMenuItem items[];
- public TestJPopupMenu() {
- popupMenu = new JPopupMenu(); // 实例化弹出菜单
- String[] str = {"红色","绿色","蓝色","×××","粉色"}; // 菜单项名称
- items = new JMenuItem[5]; // 创建5个菜单项
- for (int i = 0; i < items.length; i++) {
- items[i] = new JMenuItem(str[i]); // 实例化菜单项
- popupMenu.add(items[i]); // 将菜单项添加到菜单中
- }
- addMouseListener(new MouseAdapter() { // 窗口的鼠标事件处理
- public void mouseReleased(MouseEvent event) { // 释放鼠标
- if (event.isPopupTrigger()) // 如果是弹出菜单事件(根据平台不同可能不同)
- // 显示菜单
- popupMenu.show(event.getComponent(), event.getX(), event.getY());
- }
- });
- // 窗口的默认背景色为白色
- getContentPane().setColor.white); < /span>
- // 设置窗口标题
- setTitle("右键弹出菜单");
- // 设置窗口位置和大小。
- setBounds(200, 200, 400, 300);
- // 设置窗口为可视
- setVisible(true);
- // 关闭窗口时退出程序
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public static void main(String[] args) {
- new TestJPopupMenu();
- }
- }
效果图:
---------------------------------------------------------------------------------------
step4:
任务描述:为各菜单项添加监听:点击相应选项可以设置相应背景色
编辑类:TestJPopupMenu.class
- package test;
- import java.awt.Color;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import javax.swing.JFrame;
- import javax.swing.JMenuItem;
- import javax.swing.JPopupMenu;
- public class TestJPopupMenu extends JFrame {
- private JPopupMenu popupMenu;
- /** 菜单项 **/
- private JMenuItem items[];
- Color[] colors = { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW,
- Color.PINK }; // 背景颜色集
- public TestJPopupMenu() {
- popupMenu = new JPopupMenu(); // 实例化弹出菜单
- String[] str = { "红色", "绿色", "蓝色", "×××", "粉色" }; // 菜单项名称
- items = new JMenuItem[5]; // 创建5个菜单项
- MenuItemMonitor menuItemMonitor = new MenuItemMonitor();
- for (int i = 0; i < items.length; i++) {
- items[i] = new JMenuItem(str[i]); // 实例化菜单项
- popupMenu.add(items[i]); // 将菜单项添加到菜单中
- // 设置ActionCommand,方便我们获取下标
- items[i].setActionCommand(i + "");
- // 为各菜单项设置监听
- items[i].addActionListener(menuItemMonitor);
- }
- addMouseListener(new MouseAdapter() { // 窗口的鼠标事件处理
- public void mouseReleased(MouseEvent event) { // 释放鼠标
- if (event.isPopupTrigger()) // 如果是弹出菜单事件(根据平台不同可能不同)
- // 显示菜单
- popupMenu.show(event.getComponent(), event.getX(), event
- .getY());
- }
- });
- // 窗口的默认背景色为白色
- getContentPane().setColor.white); < /span>
- // 设置窗口标题
- setTitle("右键弹出菜单");
- // 设置窗口位置和大小。
- setBounds(200, 200, 400, 300);
- // 设置窗口为可视
- setVisible(true);
- // 关闭窗口时退出程序
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- private class MenuItemMonitor implements ActionListener {
- @Override
- public void actionPerformed(ActionEvent event) {
- // 获取String格式的ActionCommand
- String strIndex = ((JMenuItem) event.getSource())
- .getActionCommand();
- // 将上面取到的String格式的内容变为int类型作为取颜色的下标
- int niIndex = Integer.parseInt(strIndex);
- // 设置背景色为对应下标的颜色
- getContentPane().setcolors[niIndex]); < /span>
- }
- }
- public static void main(String[] args) {
- new TestJPopupMenu();
- }
- }
效果图:
---------------------------------------------------------------------------------------
这样,我们就完成了最终想要的效果,需要说明的是,JMenuItem有三个子类:JCheckBoxMenuItem, JMenu, JRadioButtonMenuItem,这里的JMenuItem可以用它的这三个子类来替换,用于完成不同样式的菜单项,这里我们看下JRadioButtonMenuItem的效果如下图:
转载于:https://blog.51cto.com/632977922/1125738
最后
以上就是成就黄豆为你收集整理的java实战开发--右键弹出菜单的全部内容,希望文章能够帮你解决java实战开发--右键弹出菜单所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复