`

构建一个易于管理的JPopupMenu

    博客分类:
  • Java
 
阅读更多

1,构建一个Action

public Action bind(String name, final Action action, String iconUrl) {
                return new AbstractAction(name, (iconUrl != null) ? new ImageIcon(
                                BasicGraphEditor.class.getResource(iconUrl)) : null) {
                        public void actionPerformed(ActionEvent e) {
                                action.actionPerformed(new ActionEvent(getGraphComponent(), e
                                                .getID(), e.getActionCommand()));
                        }
                };
        }

 其中name为menu名,action为具体的操作行为,iconUrl当要显示操作图片前缀或者后缀的时候才需要。

2,上面的action参数构造方法可以参考

public static class HistoryAction extends AbstractAction
        {

                /**
                 * 
                 */
                protected boolean undo;

                /**
                 * 
                 */
                public HistoryAction(boolean undo)
                {
                        this.undo = undo;
                }

                /**
                 * 
                 */
                public void actionPerformed(ActionEvent e)
                {
                        BasicGraphEditor editor = getEditor(e);

                        if (editor != null)
                        {
                                if (undo)
                                {
                                        editor.getUndoManager().undo();
                                }
                                else
                                {
                                        editor.getUndoManager().redo();
                                }
                        }
                }
        }

 

3,添加到JPopupMenu中去

JPopupMenu.add(...bind("name", new HistoryAction(), "/com/icon.jpg"))
 
分享到:
评论

相关推荐

    弹窗辅助输入JTextField

    弹窗通常是一个JPopupMenu或自定义组件,里面包含匹配到的建议列表。为了实现这一功能,我们需要重写`addKeyListener`或使用`DocumentListener`来捕获输入变化,然后基于输入的文本过滤数据源,生成匹配的建议列表。...

    swing组件介绍(一)

    JFrame是大多数Swing应用程序的基础,它代表一个窗口;JPanel可以作为组件的容器,允许自定义布局;JScrollPane则为过大或可滚动的内容提供滚动条;JDialog用于创建弹出式对话框。 3. **布局管理器**:Swing支持...

    基于Java的实例源码-右键弹出菜单源码.zip

    在Java编程环境中,右键弹出菜单是一种常见的用户交互元素,它为用户提供了一种快捷的操作方式,特别是在桌面应用和图形用户界面(GUI)设计中。本实例源码着重讲解如何在Java中实现这一功能。 首先,Java中的Swing...

    java application

    对于初学者而言,掌握Swing框架的使用是构建图形用户界面的重要一步,而理解如何组织和管理UI组件则有助于创建高效、美观且易于操作的应用程序界面。通过不断实践和学习,学生能够逐步提升自己的编程技能,为将来...

    第17章简易记事本——工具栏与菜单.ppt

    本章还会涉及如何整合这些元素,创建一个完整的简易记事本程序,并在实训部分提供实际操作的练习,帮助开发者巩固所学知识。 在总结本章内容时,我们强调了如何使用Java Swing库中的JToolBar、JMenu、JMenuItem和...

    LCD_Clock_factoryfsz_java_源码

    LCD_Clock_factoryfsz_java_源码是一个基于Java编程语言实现的LCD数字电子时钟项目。这个项目的主要特点是它不仅能够显示当前时间,还具备右键菜单功能,用户可以通过菜单调整LCD显示的颜色,增强了用户体验。在Java...

    EditorMDI多文档编辑器swing.rar

    这通常涉及到初始化一个新的文本组件(如JTextArea或JTextPane),并清除任何现有的文本内容。 4. **文件保存**:编辑器需要提供保存文件的功能,将用户编辑的内容写入磁盘。这通常使用文件输出流...

    2018-autumn-hw-17020031057-石晓晨-201811031

    观察者模式是设计模式之一,用于实现对象之间的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在GUI编程中,监听器就是基于观察者模式实现的。 **监听器** 监听器是实现用户...

    JAVA 记事本开发源码

    Java记事本开发源码是一个非常适合初学者和中级开发者学习的项目,它涵盖了基础的GUI设计、事件处理、文本操作以及文件I/O等关键知识点。在这个项目中,开发者使用Java Swing库来创建一个功能丰富的文本编辑器,具备...

    QQMenu完美实现

    此外,Java Swing中的JPopupMenu或JMenu类是构建下拉菜单的基础,它们可以轻松地附加到按钮或其他组件上,当触发指定事件时弹出。 为了实现伸缩效果,开发者可能需要编写自定义的动画逻辑,这通常涉及使用javax....

    深入swing 方面的书籍

    OBSERVER模式是Swing中的另一个重要概念,也被称为发布-订阅模式。Swing组件间的事件处理机制就基于此模式,如按钮点击事件、文本框更改事件等。读者将学习到如何使用EventListener和EventObject来实现事件监听和...

    java的小日历

    “java的小日历”是一个用Java编写的桌面应用程序,旨在提供基本的日历功能,包括但不限于显示当前日期、时间以及记录用户备注。此程序采用Swing库构建GUI界面,使得用户可以直观地与之交互。 ### 2. **Swing组件...

    swing_study

    Swing是Java编程语言中用于构建图形用户界面(GUI)的一个工具包,它是Java Foundation Classes (JFC)的一部分。在SwingStudy项目中,我们很显然会深入学习Swing的各种组件、布局管理器以及事件处理机制。让我们详细...

Global site tag (gtag.js) - Google Analytics