gpt4 book ai didi

java - Swing - 从面板内部调用事件

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:10 26 4
gpt4 key购买 nike

我有一个带有主窗口 JFrame 的简单 Swing GUI,它的主面板派生自 JPanel。该面板有一些按钮,可以单击这些按钮并生成事件。

我希望这些事件影响存储在 JFrame 中的数据,因为它是我的主要应用程序 - 它有一些线程队列、打开流等。

那么如何让面板中的按钮在其父框架中调用回调? Java/Swing 的最佳实践是什么?

最佳答案

要调用父框架中的方法,您需要对父框架的引用。所以你的 JPanel 的构造函数可以这样声明:

 public MyPanel(MyFrame frame){
super();
this.frame = frame;
//the rest of your code
}

在 JFrame 中,您可以像这样调用此构造函数:

  panel = new MyPanel(this);//this refers to your JFrame

在附加到按钮的事件处理程序中,您现在可以访问框架并可以根据需要调用各种方法。

  button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//do some stuff
frame.someMethod();//invoke method on frame
//do more stuff
}
});

关于java - Swing - 从面板内部调用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6201924/

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