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

如何组织Swing中的动作?

景仲渊
2023-03-14
问题内容

我目前正在替换匿名的ActionListeners

new ActionListener() {
    @Override
    public void actionPerformed(final ActionEvent event) {
        // ...
    }
}

带有代表动作的类文件:

public class xxxxxxxAction extends AbstractAction {
}

但是,我的GUI可以执行很多操作(例如CreatePersonAction,RenamePersonAction,DeletePersonAction,SwapPeopleAction等)。

是否有一种很好的方法可以将这些类组织成某种连贯的结构?


问题答案:

您可以将操作保存在单独的程序包中以隔离它们。有时,将它们放在一个类中很有用,尤其是在操作相关或具有共同的父对象的情况下,例如:

public class SomeActions {
    static class SomeActionX extends AbstractAction {
        @Override
        public void actionPerformed(ActionEvent e) {
        }
    }

    static class SomeActionY extends AbstractAction {
        @Override
        public void actionPerformed(ActionEvent e) {
        }
    }

    static class SomeActionZ extends AbstractAction {
        @Override
        public void actionPerformed(ActionEvent e) {
        }
    }
}

然后访问它们:

JButton button = new JButton();
button.setAction(new SomeActions.SomeActionX());


 类似资料:
  • 问题内容: 我当前的应用程序有一个JFrame,其中大约15个动作存储为JFrame中的字段。每个动作都是一个匿名类,其中一些动作相当长。 将动作分解成自己的类是否很常见(可能在称为动作的子包中)? 如果没有,通常如何驯服这种复杂性? 谢谢 问题答案: 如果您的操作可能是可重用的(例如,通过键盘快捷键,其他菜单,其他对话框等),尤其是如果它们可以直接在基础模型上工作(而不是在UI上),那么通常会更

  • 1. 创建一个市场活动 市场人员首先需要创建一个市场活动,通过访问【活动营销】,点击【+新建活动】进入新建市场活动-活动营销页面; 在新建市场活动-活动营销页面填写活动名称、开始时间、结束时间、地点、预计成本和收入等,保存进入活动概览可以开始准备用于活动推广并收集客户资料的内容; 2. 制作活动内容以对外介绍活动、收集客户留资 在活动下的【概览】页面,市场人员可以通过推广内容区域的【自定义】或【+

  • 经常会有短暂的组织混乱,比如解雇,收购,IPO,新雇佣,等等。对每个人来说这都是令人不安的,但可能对于那些将自尊建立在能力而非位置上的程序员来讲,这种不安不会那么严重。组织混乱对程序员来讲是锻炼他们的魔力的好机会。因为这是一个集体秘密,在最后我会有所保留。如果你不是一个程序员,就不要再读下去了。 工程师有能力创造与维持。 非工程师可以安排人们,但,在典型的软件公司,如果没有程序员的话,他们不能创造

  • 问题内容: 我在制作JApplet并遇到动画问题。 这是我的代码: 有了它,就没有动画:在循环过程中什么也没发生,repaint()方法似乎只在精灵停止移动后才起作用。 我只想将Swing用于此目的,关于如何进行的任何想法? 谢谢阅读。 问题答案: 您应该使用a 来执行动画,而不要使用“线程睡眠”。这是一个很好的链接,可以助您一臂之力:http : //java.sun.com/docs/book

  • 问题内容: 首先,为发布一些过分具体的内容而道歉,但是我对Swing并不十分了解,并且似乎找不到适合我需求的好例子。 因此,我试图找出实现动态GUI以便在Swing中选择过滤条件的最佳方法: 要实现的GUI样机 基础模型是一个类,其中包含可否定(例如,使用NOT前缀)条件的列表,以及指示这些条件应与AND还是OR组合的属性。 GUI将允许用户添加,更改或删除条件,并选择组合运算符(和/或)。第一个

  • 问题内容: 在组织python模块时,我的Mac OS X系统一团糟。我的硬盘上到处都有程序包,而没有用于组织它们的特定系统。 您如何使一切易于管理? 问题答案: 我的建议: 阅读安装Python模块。 阅读分发Python模块。 从setuptools开始使用easy_install 。阅读setuptools的文档。 始终使用virtualenv。我的site-packages目录 仅 包含