在 Swing 应用程序中组织操作?

2023-11-25

我当前的应用程序有一个 JFrame,其中约有 15 个操作存储为 JFrame 中的字段。每个操作都是一个匿名类,其中一些非常长。

将操作分解为它们自己的类(可能位于称为操作的子包中)是否很常见?

如果不是,通常如何控制这种复杂性?

Thanks


如果您的操作可以重复使用(例如,从键盘快捷键、其他菜单、其他对话框等),特别是如果它们可以直接在底层模型上工作(而不是在 UI 上),那么通常会更好不要将它们作为匿名类。

相反,创建一个单独的包,并为每个包创建类。

通常,不直接实例化它们,而是使用某种管理器来定义常量并初始化和返回操作集也是有意义的,这样您就可以在不同版本中提供不同的操作集或仅设置某些操作用于内部发布。

最后,检查您的操作是否可以重构为类层次结构。它们通常可以,这可以节省代码复制,还可以帮助您增加稳健性(例如,在执行操作之前检查某些条件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Swing 应用程序中组织操作? 的相关文章

  • 在Java中将*s打印为三角形?

    我在 Java 课程中的作业是制作 3 个三角形 一份左对齐 一份右对齐 一份居中 我必须为什么类型的三角形制作一个菜单 然后输入需要多少行 三角形必须看起来像这样 到目前为止 我能够完成左对齐的三角形 但我似乎无法获得其他两个 我尝试用谷
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 如何在 Java 中访问嵌套的 HashMap?

    我有一个 Java 中的 HashMap 其中的内容 你们可能都知道 可以通过以下方式访问 HashMap get keyname 如果一个 HashMap 位于另一个 HashMap 中 即嵌套的 HashMap 我将如何访问内容 我可以
  • 如何使用 Maven Failsafe 插件运行 JUnit 5 集成测试?

    当我运行命令时 Maven Failsafe 插件找不到我的 JUnit 5 集成测试mvn clean failsafe integration test 尽管它可以找到文件 我有junit jupiter api and junit j
  • 单元测试组合服务方法

    我正在为一个类编写 junit 单元测试 该类使用以下方法实现公开的接口 public Set
  • GET 请求的 Spring 注解

    这两种spring GET方法有什么区别呢 哪一种是首选方法 Component Scope request Path public class TestComponent GET Path hello public String prin
  • 项目缺少所需的注释处理库

    我的 Eclipse IDE 突然在问题视图中显示 xxxx 项目缺少所需的注释处理库 xxxx M2 REPO 中的一些旧 jar 我用谷歌搜索 没有找到任何答案 为什么我的项目使用旧的 jar 以及错误来自哪里 To remove th
  • 关于Java泛型的一些问题

    假设我有以下接口和实现类 interface Foo
  • java.lang.Object的hashCode具体使用的算法是什么

    中使用的算法是什么JVM实施java lang Object的隐含的hashCode 方法 OpenJDK or Oracle JDK答案中首选 它依赖于实现 并且在很大程度上 该算法是entirely取决于实施 只要它是一致的 但是 根据
  • 将现有 eclipse 项目导出到 war 文件时出现“模块名称无效”

    我正在尝试将现有 Eclipse 项目导出到 war 文件 但无论我在 WAR Export 对话框页面中输入什么 系统总是返回 模块名称无效 我不知道如何解决这个问题 谢谢您的帮助 我有同样的问题 我修复了它 请按照以下步骤操作 您可以创
  • 查找数组中的组合

    我在java中有一个像这样的二维数组 transmission communication tv television approach memorycode methodact 我需要获得所有组合 例如 transmission appr
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • Java8:流映射同一流中的两个属性

    我有课Model带有以下签名 class Model private String stringA private String stringB public Model String stringA String stringB this
  • 如何检查日期字符串的有效性?

    在我的项目中 我需要检查日期字符串是否计算为正确的日期对象 我决定允许 yyyy MM dd 和日期格式 年 月 日 和 年 月 日 小时 分钟 我如何检查它们是否有效 我的代码为 1980 01 01 和一些奇怪的日期 如 3837 05
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • JPA 将 BigDecimal 作为整数保存在数据库中

    我在数据库中有这个字段 ITEMCOST NUMERIC 13 DEFAULT 0 NOT NULL 在JAVA中 Entity中的字段定义如下 Column name ITEMCOST private BigDecimal itemCos
  • java中的预增量/后增量

    有人可以帮助我理解为什么 int i 1 int j 1 int k 1 int l 1 System out println i i System out println j j System out println k k System
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径
  • Java 中的微分方程

    我正在尝试用java创建一个简单的SIR流行病模型模拟程序 基本上 SIR 由三个微分方程组定义 S t l t S t I t l t S t g t I t R t g t I t S 易感人群 I 感染人群 R 康复人群 l t c
  • java.lang.ClassCastException:com.sun.proxy.$Proxy8 无法转换为 org.openqa.selenium.internal.WrapsDriver

    我有以下切入点和 AspectJ 中给出的建议 Pointcut call org openqa selenium WebElement sendKeys public void onWebElementAction After onWeb

随机推荐

  • 将一张图像移动到另一张图像内

    背景 我允许用户上传蒙版图像内的图像 一旦用户上传图像 我就填充用户上传里面的图像mask image 1 遮罩图像 2 用户上传的图片 3 用户上传的面具图像 最终图像 代码笔 https codepen io kidsdial2 pen
  • 找出哪个进程对 USB 设备句柄具有独占锁

    我有一个使用 CreateFile API 读取 写入 USB 设备的库 该设备恰好实现了 HID 设备配置文件 因此它与 Microsoft 的 HID 类驱动程序兼容 系统上安装的其他一些应用程序正在以读 写模式打开设备 而没有共享模式
  • Firebase 功能无法部署

    我正在尝试创建 Firebase 函数 但遇到部署错误 即使在部署默认函数时也是如此helloworld功能 firebase debug log 文件提到了这一点 Could not find image for function pro
  • ASP.NET 添加一个 httphandler 来编辑下载的文件名

    我的项目中有一个页面DownloadDocument aspx它的代码隐藏是DownloadDocument aspx cs In my DownloadDocument aspx我有一个锚点 它采用如下动态链接 a style margi
  • jquery在CSS动画播放后删除类?

    我有CSS代码 body start webkit animation srcb ease in 4s 1 进入网站后只需播放一次 但问题是动画完成时 我网站上的按钮不起作用 动画完成后如何删除主体类 start 或者在动画播放后删除类延迟
  • 在 Typescript/Angular2 中显示引导箱警报? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想在我的 Angular2 项目中使用 Bootbox 我搜索了很多 但没有任何适合我的解决方案 我也尝试过angular2 modal但在使用过
  • 从 angularjs 中的另一个指令内部添加指令

    从另一个指令中添加指令会使浏览器挂起 我想做的是 1 更改自定义元素指令 例如
  • GMSMapView animateToCameraPosition 放大-缩小动画

    我在 iOS Swift 和 Android 中使用 Google 地图服务 在android中 地图视图有一个方法叫做animatreCamera它有一个动画 其中运动具有 缩小 放大 效果 如果两个摄像机具有相同的变焦 则地图视图将缩小
  • python球物理模拟

    我看过 Peter Colling Ridge 的精彩教程 http www petercollingridge co uk pygame physical simulation 我正在扩展 PyParticles 脚本该代码可以在网站上获
  • 任务“:app:kaptGenerateStubsDebugKotlin”执行失败

    将 android studio 从 electricEel 更新为 Flamingo 插件后id kotlin kapt 导致错误 Execution failed for task app kaptGenerateStubsDebugK
  • 分配在堆上的对象

    每当创建任何新对象时 都会在堆上创建该对象 为每个对象分配的内存有两个附加字段 1 类型对象指针 2 同步块索引 这两个字段到底有什么用途 有人能解释一下吗 类型对象指针用于表示对象的类型 这是必需的 方法查找 vtable 检查石膏 寻找
  • HTML Purifier - 净化什么?

    我正在使用 HTML Purifier 来保护我的应用程序免受 XSS 攻击 目前 我正在净化所见即所得编辑器中的内容 因为这是唯一允许用户使用 XHTML 标记的地方 我的问题是 我是否应该在登录身份验证系统中的用户名和密码 或注册页面的
  • 在自定义编辑类型字段中添加多个输入元素

    有没有办法创建具有多个输入元素的自定义字段 我正在咨询文档创建单个输入元素非常简单 但我不太确定如何添加多个输入元素 以前有人走过这座桥吗 如果是这样 你是怎么做到的 这是一些示例代码 name Dimensions index Dimen
  • 在 BrowseFragment 中禁用行缩放/展开

    我还没有找到任何文档如何在将焦点从标题切换到 BrowseFragment 中的片段时禁用行缩放 倚背版本 24 2 0 BrowseFragment有一个功能enableMainFragmentScaling这部分解决了问题 图像现在具有
  • 如何查看是否点击同一个元素两次? jQuery

    如何检测用户是否点击同一个 div 我尝试过这个但没有成功 oldthis null var this this if oldthis this alert You clicked this last oldthis this 您无法比较
  • Laravel Auth::logout 未删除记住我的 cookie

    因此 我将会话的生命周期设置为两周 这样用户就不必多次登录或退出 然而今天我注意到一些事情 如果您注销 它会破坏您的会话 但会在您的浏览器上保留 记住我 cookie 这会导致问题 因为如果您在同一台计算机上切换帐户 8 10 次 您会收到
  • 事务中的 LAST_INSERT_ID() 可靠吗?

    我正在使用 mysql ado net C 这是我的问题 我知道 mysql 是并发的 但是我有文件数据 缩略图名称 和数据库数据 行 同步 如果我开始一笔交易 但因任何原因失败 这会是一个问题吗 如果我在两个核心上同时运行这段代码 它们会
  • 在iPhone App中如何检测设备的屏幕分辨率

    在 iPhone 应用程序中 在设备上运行App时如何检测运行App的设备的屏幕分辨率 CGRect screenBounds UIScreen mainScreen bounds 这将为您提供整个屏幕的分辨率 以点为单位 因此 iPhon
  • 异常处理模式

    这是我看到的一种常见模式 其中与异常相关的错误代码存储为静态最终整数 当创建要抛出的异常时 它是用这些代码之一以及错误消息构造的 这导致要捕获它的方法必须查看代码 然后决定操作过程 另一种选择似乎是为每个异常错误情况声明一个类 尽管相关异常
  • 在 Swing 应用程序中组织操作?

    我当前的应用程序有一个 JFrame 其中约有 15 个操作存储为 JFrame 中的字段 每个操作都是一个匿名类 其中一些非常长 将操作分解为它们自己的类 可能位于称为操作的子包中 是否很常见 如果不是 通常如何控制这种复杂性 Thank