gpt4 book ai didi

java - 如何让JButton事件修改JFrame(这个)

转载 作者:行者123 更新时间:2023-12-04 06:37:11 24 4
gpt4 key购买 nike

我正在尝试使 JButton 单击事件修改按钮所在的 JFrame。问题是类本身是 JFrame(从它扩展),所以我不能从处理事件的内部类调用“this”。我找到了一个有效的解决方案,但我认为它可能会导致其他问题,所以我试图找到另一种方法。代码如下:

public class ClassX extends JFrame {

...

this.setTitle("Title1"); //works fine

jButton1 = new JButton();
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {

//this.setTitle("Title1"); //calling 'this' won't work inside an inner class

//Ugly Solution
JButton btn = (JButton) e.getSource();
JFrame frme = (JFrame) btn.getParent().getParent().getParent().getParent();
frme.setTitle("Title2");
}
});

...

}

我试图避免多次 getParent 调用,但找不到其他解决方案。有任何想法吗?有没有办法将“this”或任何其他参数传递给 Action 监听器方法?

谢谢。

最佳答案

当然可以 :

ClassX.this.setTitle("Title1");

会完成这项工作(并且 Jon Skeet 同意我的看法)。

关于java - 如何让JButton事件修改JFrame(这个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4736456/

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