gpt4 book ai didi

java - 从另一个类处理 JFrame

转载 作者:行者123 更新时间:2023-11-30 09:46:28 25 4
gpt4 key购买 nike

如何从另一个类中处理 JFrame?下面列出了我的代码。

public class MainWindow

{

JFrame main_f = new JFrame("xx");
main_f.getContentPane().setLayout(new BorderLayout());
main_f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
.
.
.
}

处理类:

public static void DisposingJFrame (){
.
.
.
MainWindow.main_f.dispose();
}

MainWindow.main_f.dispose() 将不起作用,因为 main_f 不是变量。你能帮帮我吗?

最佳答案

建议:

使JFrame 实例成为MainWindow 类的字段,并为其提供一个访问器 方法。

public final class MainWindow{
private final JFrame main_f;

public MainWindow(){
main_f = new JFrame("xx");
main_f.getContentPane().setLayout(new BorderLayout());
main_f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
.
.
.
}

public final JFrame getMainFrame(){
return main_f;
}
.
.
.
}

然后在 Disposing 类中,您应该有一个 MainWindow 实例,您只需执行以下操作即可处理其 JFrame 实例:

mainWindowInstance.getMainFrame().dispose();

推荐:


编辑:

这是为了解决您看到的错误:

  1. 变量 main_f 可能还没有初始化
  2. 找不到符号“mainWindowInstance”

关于第一个错误,这是因为在我提供的例子中,我使用了final修饰符。该字段必须在对象创建时初始化。因此,您必须有多个构造函数。要解决此问题,请删除 final 修饰符,或在 MainWindow 的每个构造函数中初始化 main_f 字段。

关于第二个错误,mainWindowInstance 是我留给 创建的东西。这是一个“例如”-

public class Disposing{
private MainWindow mainWindowInstance;

public Disposing(){
mainWindowInstance = new MainWindow();
.
.
.
}

public void diposeMainFrame(){
mainWindowInstance.getMainFrame().dispose();
}
}

关于java - 从另一个类处理 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122349/

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