java - 如何调用这个类?

标签 java

我的主类调用了一个名为 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/

相关文章:

java - 由 : org. apache.maven.plugin.PluginContainerException 引起:

java - 我将日期转换为分钟有什么错误?

java - 如何在JAVA中使用selenium点击这个输入文件的浏览按钮?

由 cygwin 创建的 Windows 快捷方式 (.lnk) 的 Java 解析器

java - 如何在 Apache POI XLS 中直接存储数据?

java - 从 CGI 脚本调用 Java 程序失败

java - 如何使用 Java 正则表达式从字符串中解析此 CSV 列表?

java - Android 多行工具栏标题

java - 以下 XML 文件有什么问题

java - 如何用Java语言计算整数m使得m^3 <= Long.MAX_VALUE < (m + 1)^3?