我的主类调用了一个名为 MainFrame 的自定义 JFrame 类
public class App {
public static MainFrame mf;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
MainFrame mf = new MainFrame(Workers); //jFrame
}
});
}
public static void foo(String s){ //invoked by another class
mf.validate();
}
}
在 run() 之外调用 mf 的方法返回空值。如何调用 MainFrame 内部的方法?
最佳答案
您只需在方法范围之外声明您的类,以便稍后使用它。
MainFrame mf;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
mf = new MainFrame(Workers); //jFrame
}
});
它的发生是因为一个叫做scope 的东西。您的变量仅在声明它的括号中有效。之后垃圾收集器会自动将其删除。
关于java - 如何调用这个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453043/