我有一个称为FrameRadar的类,它是一个jframe,并实现了我的界面应用程序,其中包含一些方法,例如update,draw和input等。
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能够调用那些方法,但事实并非如此。我做错了什么?
最佳答案
您无法调用方法,因为不能保证mFrame是FrameRadar。要么将其声明为FrameRadar,要么需要在调用函数之前将其强制转换为FrameRadar。