问题标签 [actionlistener]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何从其他动作中调用动作?(如果那是明智的)
我即将将 Swing 应用程序从使用 ActionListeners 重构为 Action 类,因为我意识到我的许多菜单项也将在工具栏中使用。
现在我有一个类ImportExport
,它处理底层模型的状态,然后显示适当的用户对话框。ImportExport
具有 和的save()
功能。当用户单击“打开”菜单项时,动作侦听器调用,首先检查模型是否有更改,如果是这种情况,则会显示一个对话框,询问用户是否要先保存。现在,如果用户单击“是”调用,它将再次执行一些检查并显示用户对话框。非常持久:退出此操作的唯一方法是成功保存或用户决定要取消。我强烈依赖提供的反馈,如果用户想取消,我也会取消呼叫saveAs()
open()
open()
open()
open()
save()
save()
save()
open()
功能。
我想把这个ImportExport
类分成三个类(OpenAction
, SaveAction
& SaveAsAction
),每个类都是子类AbstractAction
并最终摆脱了这个ImportExport
类。SaveAction
这就是我的问题出现的地方:如果用户想要在打开另一个模型之前保存模型,我如何告诉执行?如果用户决定取消,我如何获得反馈?
这甚至是正确的方法吗?我不喜欢在保存和打开操作中有重复的代码,我已经在我的底层模型中加入了尽可能多的功能,但是用户对话框显然不合适,所以这是没有选择的。完全被Action
设计为拥有这种功能,或者我只是保留我的ImportExport
类,并简单地将所有操作调用委托给ImportExport
. 你怎么用Actions
?
java - ActionListener/actionPerformed 类中的扫描仪错误
大家好,我正在开发一个用 Java 制作的十六进制转储实用程序。我在使用 hex/ascii 逻辑之前使用的扫描仪有一些问题。
现在,出于调试原因,我排除了逻辑和其他一些东西,但是如果有人知道发生了什么,我想知道!非常感谢提示。
java - Java 简单 ActionListener 问题
我在一个程序中有一个主类,它启动另一个处理所有 GUI 内容的类。在 GUI 中,我有一个需要附加 ActionListener 的按钮。
唯一的问题是,要执行的代码需要驻留在主类中。
当在别处单击按钮时,如何让 ActionPerformed() 方法在主类中执行?
java - 使用 actionlistener 添加到数组
我是java初学者,遇到了一个我无法解决的问题。
我正在尝试将字符串添加到我的数组中,我已经测试了我的数组以便工作。但我的问题是我创建了一个 actionlistener 并试图从另一个类中获取文本,然后将其添加到数组中。
我的按钮监听器:
我有一个朋友告诉我,我每次按下按钮时都会创建一个新数据库,但如果我只想“加载”它怎么办?可以清除该数据库是我的数组的类名。
更“有趣”的部分是,当我在 Eclipse 中运行它时,它会进入调试器而没有向我显示任何明确的错误,并且由于我对 java 的了解有限,这对我来说太过分了。
我的 buttonlistener 正在从 AddToLibrary 获取信息,它看起来像这样:
但它不起作用,我不明白为什么它不起作用,所以如果有人有时间帮助我,我会很高兴。
谢谢!
java - 在循环中动态创建的每个按钮都有不同的操作
经常使用这个网站,但第一次发帖。我的程序根据文件中的记录数创建许多按钮。例如 5 条记录,5 个按钮。
正在创建按钮,但我遇到了动作侦听器的问题。
如果在循环中添加动作监听器,每个按钮都会做同样的事情;但是如果我在循环之外添加动作监听器,它只会将动作监听器添加到最后一个按钮。
有任何想法吗?
这是我在代码方面的内容(我刚刚添加了 for 循环以节省空间):
非常感激
java - 编写动作监听器的常用方法是什么?
我刚开始学习如何使用动作监听器。据我了解,它的工作方式如下:
有一些类默认包含“addActionListener”方法(例如按钮类)。
使用此方法,我们将动作侦听器添加到对象。例如:
listenedObject.addActionListener(listeningObject)
。当执行带有“listenedObject”的动作时,将调用“listeningObject”的“actionPerformed”方法。因此,这意味着当我们为 listenerObject 编写一个类时,我们需要在其中放置“actionPerformed”方法。
我不清楚的是,我们是否应该为我们想要收听的每个对象创建一个新类。在我看来,这不是一个优雅的解决方案。另一方面,如果我们为所有(或至少许多)对象有一个动作侦听器类,那么我们就会遇到问题,因为此类的实例将不知道哪个对象正在调用“actionPerformed”方法(我们需要知道因为 actionPerformed 执行的操作因调用此方法的人员而异)。
在我看来,对于我们需要创建的每个监听对象都是“个人”动作监听器,我们可以通过为动作监听器的相应字段设置特定值来做到这一点。但我不确定这是一种标准的方式吗?人们通常是怎么做的?
java - 通过按下按钮更改框架的属性
假设我们有一个名为 frame1 的 JFrame,其中一个名为 credentials 的字符串属性最初设置为 null。我有一个名为 button1 的 jButton 附加到框架上,我想通过按 button1 来更改 frame1 字符串凭据属性。我特别需要一些关于 ActionListener 代码的建议。
java - 如何为动作侦听器提供变量?
我partner
在类中有一个静态变量。而且我想在按下单选按钮时设置这些变量的值。这是我尝试使用的代码:
这里的问题是actionPerformed
看不到playerName
循环中创建的变量。如何将此变量传递给 actionListener?
java - 可以添加一个 ActionListener 很短吗?我可以向 actionPerformed 添加参数吗?
我有一个大表,每个单元格中都有一个按钮。这些按钮非常相似,功能几乎相同。如果我以这种方式为每个按钮添加一个动作监听器:
实际上,每个动作侦听器与所有其他侦听器的不同之处在于action
. proposition
并且updatePropositionPanel
是类的一个字段和一个方法。
首先,我认为如果我不使用内部类,我可以让它更短。所以,我决定编写一个新的 ActionListener 类。但我意识到,在这种情况下,“命题”对这个类的实例是不可见的。
然后我决定将 actionPerformed 方法添加到当前类并这样做
addActionListener(this)
:但是我意识到我不知道如何为 actionPerformed 方法提供参数。
那么它是怎样工作的。我可以以一种简短而优雅的方式添加一个动作监听器吗?
添加:
我喜欢用构造函数编写内部类的想法,该构造函数可以接受一些参数和 actioPerformed 方法,该方法可以使用构造函数中给出的参数。我开始这样做,然后意识到它会与其他内部匿名类产生冲突(就像上面给定的代码一样使用)。所以,我想我会创建另一个类(不是内部类)。
jsf - JSF 命令按钮属性传输不正确
我在 jsf 页面中有以下代码,由 jsf 托管 bean 支持
此代码片段专用于编辑项目集合。表格的每一行都包含“编辑”按钮,用于将行的更改值提交给服务器。它具有项目本身作为属性。提交是通过调用后备托管 bean 中的 actionListener 方法来执行的。
此代码在 Glassfish v 2.1 上正确运行
但是当服务器更新到 Glassfish v 2.1.1 时,该属性停止正确传递。不是传递已编辑的项目(当我们更改表格行中的值时,我们实际上是在更改底层对象字段),而是将源项目提交给服务器,即先前提供给页面的项目。在页面上所做的所有更改都将被丢弃。
我尝试将 jsf 版本从 1.2_02 更新到 1.2_14(我们使用的是 jsf RI),但没有任何效果。
也许有人遇到过同样的问题?任何帮助和建议将不胜感激。