JPanel 动作监听器

2023-11-27

我有一个 JPanel,其中有一堆不同的复选框和文本字段,我有一个已禁用的按钮,需要在设置特定配置时启用。 我需要的是在整个 JPanel 上寻找事件的监听器,每当发生任何变化时。 我相信我需要一个动作侦听器,但我找不到任何东西来桥接动作侦听器与 JPanel

JPanel Window = new JPanel();
Window.addActionListener(new ActionListener(){
//Check if configurations is good
}

我想我可以将我的代码多次复制并粘贴到面板中的每个侦听器中,但这对我来说似乎是糟糕的编码实践。


首先@Sage 在他的文章中提到comment a JPanel与其说是一个容器,不如说是一个执行操作的组件。所以你不能附加一个动作监听器 to a JPanel.

我想我可以将我的代码复制并粘贴到每个 面板中的听众,但这对我来说似乎是不好的编码实践。

你对此完全正确,这根本不是一个好的做法(请参阅干原则)。相反,您可以只定义一个ActionListener并将其附加到您的JCheckBox像这样:

final JCheckBox check1 = new JCheckBox("Check1");
final JCheckBox check2 = new JCheckBox("Check2");
final JCheckBox check3 = new JCheckBox("Check3");

final JButton buttonToBeEnabled = new JButton("Submit");
buttonToBeEnabled.setEnabled(false);

ActionListener actionListener = new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        boolean enable = check1.isSelected() && check3.isSelected();
        buttonToBeEnabled.setEnabled(enable);
    }
};

check1.addActionListener(actionListener);
check2.addActionListener(actionListener);
check3.addActionListener(actionListener);

这意味着:如果check1 and check3都选择,则必须启用该按钮,否则必须禁用该按钮。当然,只有您知道应选择哪种复选框组合才能启用该按钮。

看看如何使用按钮、复选框和单选按钮教程。

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

JPanel 动作监听器 的相关文章

  • 如何获取枚举的子集

    大多数情况下 包含所有元素的枚举显示在用户界面的下拉列表中 我们只需要在用户界面中显示 5 个字段中的 2 个 通过某种方式利用可用于枚举的相同函数来获取此数据的更简单方法是什么 enum Color RED GREEN BLACK BLU
  • 带有来自 Selenium 2 / WebDriver 的 Id 的 jQuery 元素选择器

    我可以在 Selenium 中获取元素的 ID RemoteWebElement webElement getId 它返回一个像这样的字符串 e9b6a1cc bb6f 4740 b9cb b83c1569d96d 我想知道这个ID的来源
  • 使用 Spring MVC 返回 PDF 文件

    实际上 我有这个功能 我有一个框架 可以在其中设置 URL ip port birt preview report report rptdesign format pdf parameters 并且该框架呈现 PDF 文件 但我想隐藏该网址
  • 按下按钮时清除编辑文本焦点并隐藏键盘

    我正在制作一个带有编辑文本和按钮的应用程序 当我在 edittext 中输入内容然后单击按钮时 我希望键盘和焦点在 edittext 上消失 但我似乎无法做到这一点 我在 XML 中插入了这两行代码 android focusable tr
  • 使用 xuggle 将 mp3 转换为 wav 出现异常

    我正在尝试将 mp3 转换为 wav 代码在这里 String mp3 F work pic2talk38512 mp3 String wav F work pic2talk38512 wav TranscodeAudioAndVideo
  • DateTimeFormatter.parseLocalDate 抛出 UnsupportedOperationException

    该API用于解析本地日期 http joda time sourceforge net apidocs org joda time format DateTimeFormatter html parseLocalDate 28java la
  • 根据哈希值确认文件内容

    我需要 检查完整性 content文件数量 文件将写入 CD DVD 可能会被复制多次 这个想法是识别正确复制的副本 在从 Nero 等中删除它们之后 我对此很陌生 但快速搜索表明Arrays hashCode byte http down
  • 确定代码是否在 App Engine 运行时 (Java) 上运行

    如何确定某些代码 Serv let 或简单的类 是否正在 Google App Engine 运行时 Java 上运行 以便决定是否使用 App Engine 的特定库 是否有一些可靠的运行时环境 ID 您可以检查com google ap
  • Java 反射:如何检索匿名内部类?

    我在另一个类中有一个匿名内部类 SomeClass Both SomeClass class getClasses and SomeClass class getDeclaredClasses 返回空数组 我在中找不到一些关于此的提示Cla
  • 在Java中使用BufferedWriter写入文件时监视文件大小?

    我正在将一个可能很长的项目列表写入文件 我正在写的项目的长度是可变的 如果生成的文件大小大于10M 则应将其分成多个文件 为了提高性能 我目前使用 BufferedWriter 如下所示 final FileOutputStream fos
  • 在 JavaFX 中拖动未装饰的舞台

    我希望将舞台设置为 未装饰 使其可拖动且可最小化 问题是我找不到这样做的方法 因为我遇到的示例是通过插入到主方法中的方法来实现的 我想通过控制器类中声明的方法来完成此操作 就像我如何使用下面的 WindowClose 方法来完成此操作 这是
  • wsdl 没有服务元素

    我必须使用 WCF Web 服务并获得 WSDL 外部的 因此无法控制 WSDL 在 WSDL 定义中 我没有找到包含服务 端口和地址元素的服务元素 WSDL 中不存在这种情况正常吗 这对于 WCF WSDL 来说很常见吗 我正在尝试使用轴
  • 多对多不检索映射数据

    Spring boot 2 5 6 我无法安装版本 概要文件 java Getter Setter NoArgsConstructor AllArgsConstructor EqualsAndHashCode FieldDefaults l
  • 处理照片上传的最佳方式是什么?

    我正在为一个家庭成员的婚礼制作一个网站 他们要求的一个功能是一个照片部分 所有客人都可以在婚礼结束后前往并上传他们的照片 我说这是一个很棒的想法 然后我就去实现它 那么只有一个问题 物流 上传速度很慢 现代相机拍摄的照片很大 2 5 兆 我
  • 链表中的虚拟节点

    问 什么时候使用它们 作业问题 列表中的第一个和最后一个节点 有时用作列表中的第一个和最后一个节点 从未用作列表中的第一个和最后一个节点 维基百科说 哨兵节点是与链接一起使用的专门指定的节点 列表和树作为遍历路径终止符 哨兵节点的作用是 不
  • 如何告诉 IntelliJ 使用 Java 1.6 JDK 启动 gradle?

    一个简单的问题 即使经过几个小时的尝试和搜索 我也无法弄清楚 我安装了 Java 6 和 7 如何告诉 IntelliJ 使用 JDK 版本 1 6 启动 Gradle 构建 无论我做什么 IntelliJ 都会以以下方式开始我的 grad
  • Microsoft JDBC 中的 JTDS 属性相当于什么?

    我正在将 JTDS 连接更改为 Microsoft JDBC 并且我看到存在于http jtds sourceforge net faq html http jtds sourceforge net faq htmlMicrosoft JD
  • Checkstyle - 方法按修饰符排序

    是否可以添加到 checkstyle 规则以按修饰符对类中的方法进行排序 我的意思是开头的公共方法和最后的私有方法 MethodsOrderCheck做这个工作 检查文档 https www qulice com qulice checks
  • 升级到 Tomcat 8 时出现 ClassNotFoundException

    我最近将 NetBeans IDE 从 v7 3 升级到 v8 突然我的应用程序在连接到数据库时在服务器启动时抛出异常 这两个版本的 IDE 之间的唯一区别是后者使用 Tomcat 8 异常日志 javax naming NamingExc
  • 安卓框架?

    是否有任何框架比构建 Android 应用程序更容易 您会对其中一个感兴趣吗 很快就会有 我正在开发 DroidFu 一个 Android 共享库 它将为您提供 活动 和服务 中直接提供大量实用功能 例如生成列表和错误对话框 检查 Inte

随机推荐

  • 如何使用 Objective-C 实现 LocalNotification?

    我正在尝试在我的应用程序中实现本地通知 我不知道如何正确执行 下面的代码我用于新的数据到达过程 在如何实现通知过程之后 我在这两个过程中都需要通知foreground and background modes 下面我已经成功backgrou
  • 如何知道导入中可用函数的完整列表有哪些?

    在 Haskell 中 如果我导入一个模块 例如 import Data List 我如何知道 Data List 提供的总方法是什么 在 Prelude 中我可以像这里所说的那样使用完成有没有办法在 GHCI 中查看模块中的函数列表 Pr
  • 我可以使用 Spring Security 拥有多个安全上下文吗?

    我有一个安全上下文定义 它使用 PreAuthenticatedProcessingFilterEntryPoint 作为应用程序的弹性部分 我怎样才能有另一个定义 将标准表单登录与 html 表单用于我的应用程序的另一部分 这是我目前拥有
  • 为什么色情网站会出现在我的 Google Analytics(分析)数据中?

    几天前 我部署了一个网络应用程序 并在其上安装了 Google Analytics 来跟踪活动 几乎每天 我都会至少有一个记录的页面浏览指向 www pornhub forum ga postxxx 或 www youporn forum
  • 获取方法调用者的行号?

    Java中有没有办法获取方法调用者的行号 我不想抛出异常 我必须使用堆栈跟踪吗 有什么方法可以便宜地做到这一点吗 编辑 澄清一下 我不需要调用者班级的行号 我想要调用该方法的确切行 答案是Aasmund提供的作品 但你最好使用 Thread
  • FullCalendar:更改议程日背景颜色

    虽然我看到有人问这个问题 但我还没有看到答案 我只是想能够给它上色background color of the TD从一定范围 假设我的日历每 15 分钟就有一个时段 从上午 9 点到下午 9 点 我只想在上午 10 点到下午 3 点使用
  • iOS 区分哪个标注配件被点击

    在我的地图注释中 我有一个 UIButton 作为标注中的每个附件视图 在里面 void mapView MKMapView mapView annotationView MKAnnotationView view calloutAcces
  • 在版本控制下处理系统特定信息的最佳实践是什么?

    我是版本控制的新手 所以如果有一个众所周知的解决方案 我深表歉意 特别是对于这个问题 我正在使用 git 但我很好奇如何为所有版本控制系统处理这个问题 我正在开发服务器上开发 Web 应用程序 我在两个地方定义了 Web 应用程序的绝对路径
  • Meteor - 什么是 Spacebars.kw {hash: Object}

    我正在尝试编写一个可以放置在模板内的 Meteor 包 所以我首先尝试注册一个助手 Template registerHelper testHelper function a b console log a console log b 我已
  • 获取 ArrayList> 值

    在我的第一个活动中 我有以下代码 ArrayList
  • iPhone Facebook SDK 的 Facebook 类有取消方法吗?

    是否有办法取消 Facebook 对象的待处理请求 我在 Facebook h 中找不到任何方法 也找不到访问底层的方法NSURLConnection目的 如果我按回导航栏并且它们是待处理的异步 Facebook 请求 则该请求会尝试将消息
  • 如果可能的话,我应该使用 angularjs $http 服务来请求还是 jquery ajax ?

    在我的项目中 我使用 angularjs 框架并且喜欢使用 http每当我进行 ajax 调用时 都会提供服务 但在项目的某些部分 UI 不是通过 ajax 调用直接更新并且不需要 angularjs 绑定 我应该使用 http服务或普通j
  • 聚合根是否应该在领域驱动设计中实现接口

    我正在开发一个使用领域驱动设计和测试驱动开发的项目 在阅读 Evans 的 DDD 书籍时 我注意到他没有为域中的聚合根定义接口 如果我同时进行 DDD 和 TDD 我是否应该为每个聚合根定义接口以使聚合根类易于测试和模拟 如果是这样 我是
  • 调用 getDrawingCache() 时视图太大,无法放入绘图缓存

    我正在尝试截取 LinearLayout 内容的屏幕截图 该布局包含一个可以具有可变高度 宽度的滚动视图 当布局不太大时 此代码可以正常工作 即您不需要在屏幕上滚动太多来查看所有内容 View v1 LinearLayout theLayo
  • FireMonkey 应用程序中是否有可使用的 Web 浏览器组件?

    对于 Delphi VCL 有TWebBrowser和一些第三方组件 例如TEmbeddedWebBrowser可用于浏览网页 有没有类似的网络浏览器组件 但对于火猴框架在德尔福XE2 最好有 Windows 和 Mac 支持 您可以使用C
  • Angular2订阅理解箭头功能

    我尝试通过以下示例来理解打字稿的箭头函数角2可观察的订阅方法 有人能给我解释一下吗 我有这个有效的代码 this readdataservice getPost subscribe posts gt this posts posts 但如果
  • C#中如何实现多行字符串; VB 的 XML Literals 的替代品?

    我在 vb net 中有一个项目使用XML Literals像这样处理大块 SQL Dim SQL As String a Use test alter table BarFoo alter column CouponName nvarch
  • 如何绑定perl脚本中的每个变量?

    我想看到 perl 脚本中的变量被创建 访问 销毁时的每个地方 使用它可以轻松到达tie or Variable Magic 但是如何在创建变量时自动应用这个魔法呢 您可以查看 B Xref 它会生成应用程序中所有变量的交叉引用列表 基本上
  • 导航视图项目按下时不会响应

    我正在开发一个带有侧导航抽屉的应用程序 抽屉打开得很好 但是据说可以 点击 的文本似乎没有响应 动画显示 当轻敲抽屉时会有反馈 您可以听到声音 但没有任何结果 我尝试放置 toast 消息以查看按钮是否注册了操作 但按下时没有出现 toas
  • JPanel 动作监听器

    我有一个 JPanel 其中有一堆不同的复选框和文本字段 我有一个已禁用的按钮 需要在设置特定配置时启用 我需要的是在整个 JPanel 上寻找事件的监听器 每当发生任何变化时 我相信我需要一个动作侦听器 但我找不到任何东西来桥接动作侦听器