繁体   English   中英

不同类中的Java ActionEvent

[英]Java ActionEvent in Different Class

一直在努力解决这一问题超过一天,现在抛出白旗。 在UMUC上这堂课,这几乎是一门自学式课程,没有任何帮助,所以我非常感谢能够在这里提出这个问题。

只是从概念上问这个问题,因为我什至无法理解这个概念。

我有一个创建按钮的GUI类(JPanel的子类)。 在GUI类中,按钮使用ActionListener来识别单击它的时间,并在文本字段上执行验证测试。 到现在为止还挺好!

现在,在进行验证测试(确保文本字段中的输入为数字)之后,我想使用此输入将其添加到其他类(称为Account)中的变量。

在包含主要方法的第三个类中,我创建了Account类的两个实例:检查并保存,以及Frame和向该框架添加GUI。

问题:(1)当单击GUI类中的按钮时,如何触发帐户类中的add方法? (2)如何确保它适用于Account类的特定实例,即检查还是保存?

您可能有多种方法可以执行此操作。 一种方法是为JPanel提供一个ActionListener属性,然后在您验证了按钮的输入后将触发该属性。 这是一个基本的观察者模式(并且您已经在JButton上使用了它)。

然后的问题是如何从面板中获取信息。 您可以在面板上提供吸气剂,但这开始加强代码中的耦合。

更好的解决方案可能是提供您自己的侦听器/观察器接口,然后可以将所需的信息从GUI传递给侦听器,从而进一步取消API的耦合

我将尽可能避免将Account传递给GUI,除非有实际使用/修改帐户的理由,否则最好使其脱离责任,GUI的责任是尽可能获取并验证信息。并将处理传递给观察者/听众。

在这种情况下,您只需要将侦听器/观察者包装在帐户的特定实例周围,因此在触发侦听器/观察者时,它将在正确的帐户上运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM