我无法从jframe调用我的方法

时间:2014-04-01 20:22:32

标签: java jframe jpanel

我有一个名为FrameRadar的类,它是一个jframe并实现我的界面应用程序,其中包含一些方法,如更新,绘图和输入等。

public class FrameRadar extends javax.swing.JFrame implements IApp{
    ...
}

然而,FrameRadar中没有main方法,而是创建了另一个名为StateMenu的类,它扩展了一个抽象类状态。在它上面我创建了一个jframe对象,后者我初始化它。

class StateMenu extends State {

private JFrame mFrame;
...

public void init() {
    java.awt.EventQueue.invokeLater(new Runnable() {
                @Override
                public void run() {
                    mFrame = new FrameRadar();
                    mFrame.setVisible(true);
                }
        });
    }
}

问题是我希望mFrame能够调用这些方法,但事实并非如此。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您无法调用这些方法,因为无法保证mFrame是FrameRadar。要么将其声明为FrameRadar,要么在调用函数之前将其强制转换为FrameRadar。