gpt4 book ai didi

Java在不相关的类之间创建事件

转载 作者:太空宇宙 更新时间:2023-11-04 15:07:46 25 4
gpt4 key购买 nike

您好,我想知道创建链接两个不相关类的事件的最简单(或更少扭曲)的方法。

假设我有以下方案:(a -> b 表示 a 包含 b)

class ZeroThing extends JPanel container1 
-> class FirstThing extends JPanel container1.1
-> JProgressBar bar
-> JButton but
-> class SecondThing extends JPanel container1.2
-> JLabel lab1
-> JLabel lab2

我希望每次按下按钮时都会自动将一个字母添加到 lab2 中。将 but 事件链接到 lab2 的最简单方法是什么?

编辑:我想做的事情:

but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lab2.setText("Hello");
}
});

这不起作用,因为 but 是 FirstThing 类中包含的 JButton,而 lab2 是 SecondThing 类中包含的 JLabel。我怎样才能绕过这种情况?

最佳答案

既然您询问了最简单的方法,那么这是一种实现类之间紧密耦合的方法,因此非常丑陋:

  1. FirstThing 中创建一个公共(public)方法 SetLab2Text(...)
  2. SecondThing 中创建一个类变量来保存对 FirstThing 实例的引用: FirstThing ft = new FirstThing(); 它假设FirstThing 的默认构造函数只是初始化类变量,并不实现任何 GUI 内容。
  3. butActionListener 中添加 ft.SetLab2Text("Hello");

再说一次,这只是完成任务的一种快速而肮脏的方式,并且代表一个好的设计。

关于Java在不相关的类之间创建事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com