Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 表单中包含JComponents的侦听器_Java_Swing_Listener - Fatal编程技术网

Java 表单中包含JComponents的侦听器

Java 表单中包含JComponents的侦听器,java,swing,listener,Java,Swing,Listener,现在,当我有一个包含许多JComponents的表单时,主要是JTextFields、JTextAreas、JComboxes、JCheckbox和JButtons,我想控制它们的行为,例如释放某个键后焦点的变化,我会执行以下操作: 我将所有组件放在JComponent[]中,并在其中循环,添加适当的侦听器。当所述侦听器注册了一个事件时,我使用“instanceof”检查是什么类型的JComponent触发了该事件,并指定适当的反应 例如,我使用此方法在表单中循环使用VK_ENTER,或在Doc

现在,当我有一个包含许多JComponents的表单时,主要是JTextFields、JTextAreas、JComboxes、JCheckbox和JButtons,我想控制它们的行为,例如释放某个键后焦点的变化,我会执行以下操作:

我将所有组件放在JComponent[]中,并在其中循环,添加适当的侦听器。当所述侦听器注册了一个事件时,我使用“instanceof”检查是什么类型的JComponent触发了该事件,并指定适当的反应

例如,我使用此方法在表单中循环使用VK_ENTER,或在DocumentListener触发后执行“firePropertyChange(..”,或添加UndoRedoListener等等

我的问题:有没有更好的方法来做到这一点?如果有,你能向我解释一下好处吗

但我的问题是指把所有的 数组中的JComponents,并为每个侦听器循环使用它们 以及每一个被解雇的事件。它工作得很好,但感觉有点不舒服 “不经济”,所以我想知道这是推荐的做法,还是 有一种更好的方法


如果我有特定于类型/实例的行为,我通常会为每个类型/实例编写一个自定义侦听器(通常作为匿名类),这样我就可以避免instanceof和其他检查。

您将需要自定义focus Transfersal系统


请看一看,特别是

如果不是答案,我不理解这个问题。FocusManager是一个很好的提示,但我的问题指的是将所有JComponents放入一个数组中,并为每个侦听器和每个激发的事件循环使用它们的一般做法。它工作得很好,但感觉有点“不经济”,所以我想知道这是否是推荐的做法,或者是否有更好的方法。听起来你做了一些基本错误的事情(从未感觉到这样的愿望/需要)后退一步,解释你想要实现的目标(与描述感知解决方案的问题相比)对不起,我似乎没有把我的问题说清楚。普塞已经理解了我的要求,他的回答至少表明了这一点。我将再试一次:给定一个表单上可能有大量的jcomponent和各种各样的jcomponent,我需要为许多不同的事件分配侦听器;注册事件后执行的操作通常取决于特定类型的JComponent。目前,我所做的事情如上所述(在JComponent[]中循环,使用“instanceof”进行检查)。有没有更好的方法(可能是Puce?)来做到这一点?