当前位置: 首页 > 面试题库 >

使用注册表管理Swing操作

叶俊郎
2023-03-14
问题内容

通常,当我创建Swing(或任何UI)应用程序时,菜单项和按钮上会显示各种动作。我通常创建一个动作注册表,并将动作存储在其中,然后在发生某些情况时,根据应用程序的状态在注册表中禁用/启用动作。尽管我对它的了解足够好,但我不会称自己为Swing的狂热开发者,但这是管理Action的非常典型的模式吗?还是有更标准的方法呢?

谢谢,

杰夫


问题答案:

杰夫,您的方法似乎是一种好方法。我做同样的事情。我将注册表称为ActionHandler,它看起来像这样:

import com.google.common.collect.ClassToInstanceMap;
import com.google.common.collect.ImmutableClassToInstanceMap;

import javax.swing.*;
import javax.swing.text.DefaultEditorKit;

public class ActionHandler {

    private static final ClassToInstanceMap<Action> actionMap =
            new ImmutableClassToInstanceMap.Builder<Action>().
                    put(DefaultEditorKit.CutAction.class, new DefaultEditorKit.CutAction()).
                    put(DefaultEditorKit.CopyAction.class, new DefaultEditorKit.CopyAction()).
                    put(DefaultEditorKit.PasteAction.class, new DefaultEditorKit.PasteAction()).
                    put(RefreshAction.class, new RefreshAction()).
                    put(MinimizeAction.class, new MinimizeAction()).
                    put(ZoomAction.class, new ZoomAction()).
                    build();

    public static Action getActionFor(Class<? extends Action> actionClasss) {
        return actionMap.getInstance(actionClasss);
    }
}

现在禁用,例如ZoomAction,我使用

   ActionHandler.getActionFor(ZoomAction.class).setEnabled(false);


 类似资料:
  • 注册表是Windows系统的关键要素之一。 它包含有关操作系统各个方面的大量信息。 几乎所有安装在Windows系统上的应用程序都以某种形式与注册表交互。 注册表包含两个基本元素:键和值。 注册表项是与文件夹类似的容器对象。 注册表值是与文件类似的非容器对象。键可能包含值或其他键。 使用类似于Windows路径名称的语法来引用键,并使用反斜杠来指示层次结构的级别。 本章介绍查询值,添加,删除和编辑

  • 本文向大家介绍C#操作注册表的方法,包括了C#操作注册表的方法的使用技巧和注意事项,需要的朋友参考一下 C#操作注册表全攻略 相信每个人对注册表并不陌生,在运行里面输入“regedit”就可以打开注册表编辑器了。这东西对Windows系统来说可是比较重要的,也是病毒常常会光顾的地方,比如病毒和恶意软件常常会在注册表的启动项里面写入自己的启动键值来达到自启动的目的,有些病毒还会修改注册表里面来映像劫

  • 最近测试WooCommerce,发现当有新用户注册时没有管理员通知,感觉这是个很实用的功能,不明白为什么没有。找了一些方案,发现下面这个可用。 在主题的functions.php中放如下代码 //New user notification to admin // Woocommerce New Customer Admin Notification Email add_action('woocom

  • 本文向大家介绍C#操作windows注册表的方法,包括了C#操作windows注册表的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#操作windows注册表的方法。分享给大家供大家参考。具体如下: 此代码演示了如何读取和写入注册表 读取注册表: 写入注册表: 希望本文所述对大家的C#程序设计有所帮助。

  • 问题内容: 我一直在将RMI用于当前正在处理的项目,并且希望将多个主机绑定到单个RMI注册表。 但是,当我尝试这样做时,我收到一条错误消息: java.rmi.AccessException:不允许Registry.Registry.bind;origin / 192.168.0.9是非本地主机 我这样做是在谷歌上进行的,似乎RMI默认情况下会阻止远程主机进行绑定,我想知道是否有某种方法可以覆盖或

  • 源代码 ENS注册表是ENS系统中的核心合约,所有的ENS查询都从注册表开始。注册表负责管理域名列表,记录每个域名的所有者、解析器和TTL,并允许域名的所有者对这些数据进行更改。 ENS注册表的详细信息请参阅EIP137。 获取所有者 function owner(bytes32 node) external view returns (address); 1 以上函数返回node所标识域名的所有