gpt4 book ai didi

Java/Eclipse(WindowBuilder 插件)——如何有效地使用 Swing Actionlisteners?

转载 作者:行者123 更新时间:2023-11-30 07:26:57 24 4
gpt4 key购买 nike

我的问题特定于 Eclipse 和 Swing WindowBuilder 插件。

为了制作简单的 Swing 应用程序,我通常会创建一个类并扩展一个 JFrame。我将我的 Swing 组件设为私有(private)类变量。这允许我添加一个 Actionlisteners 并访问 actionPerformed() 中的 swing 组件,如下所示:

public class MyClass() extends JFrame implements ActionListener {
private JButton btnClickMe = new JButton("Click me");

public MyClass() {
super("title");
this.setLayout(null);
btnClickMe.setBounds(1,1,100,100);
this.add(btnClickMe);
btnClickMe.addActionListener(this);
this.setVisible(true);
}

public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if(source == btnClickMe) { // do something }
}

public static void main(String[] args) {
new MyClass();
}
}

默认情况下,WindowBuilder 插件会创建 Swing 组件变量,我猜是在构造函数 (public MyClass()) 中创建的,而不是私有(private)类变量。由于范围的原因,我无法按照我习惯的方式使用 ActionListeners,因为 Swing 变量对 actionPerformed() 不可见。

谁能建议如何克服这个问题?

最佳答案

是什么阻止您将这些局部变量重构为字段? WindowBuilder 的一大优点是能够在某种程度上解析手写代码。

此外,Window Builder 中还有一个配置选项可以为控件创建字段变量。在 Eclipse 中查看,Preferences->WindowBuilder->Swing->代码生成 ;)

关于Java/Eclipse(WindowBuilder 插件)——如何有效地使用 Swing Actionlisteners?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10082608/

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