日期:2014-05-20  浏览次数:20898 次

Frame继承问题
我写了一个public class BaseFrame extends Frame的类文件 又写了一个 public class BombFrame extends BaseFrame的累文件 现在我的BombFrame 要继承BaseFrame的方法 ,但是我要现在BombFrame里面建个frame图 但是再eclipse里面 的BombFrame里面为什么不能使用frame方法?而且只能再main方法里面使用?
我是新手 不是很了解继承 求高手指点下 下面是我的代码
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class BaseFrame extends Frame {
private ConfirmDialog configDialog = null;
private static BaseFrame self = null;

public BaseFrame(){

self = this;
configDialog = new ConfirmDialog(this, "系统提示");
this.setSize(400,400);
this.setVisible(true);

//关闭窗口是弹出Dialog提示框
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
configDialog.setVisible(true);
//弹出窗口显示中间
configDialog.ConfirmDialogsetCenter();
}
});

}

//居中
public void BaseFramesetCenter(){
double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();


self.setLocation((int)(width-self.getWidth())/2,(int)(height-self.getHeight())/2);

self.setVisible(true);
}


/**
* @param args
*/
}


***************************************************************************************************
import java.awt.CheckboxMenuItem;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;


public class BombFrame extends BaseFrame {

private static BaseFrame self = null;


public BombFrame(){
super();
self = this;
}
  //居中
void setCenter(){
super.BaseFramesetCenter();
}

/**
* @param args
*/
public static void main(String[] args) {
Frame frame = new Frame("扫雷");
frame.setSize(200,300);
frame.setVisible(true);
frame.setLayout(new FlowLayout());

MenuBar menubar = new MenuBar();
frame.setMenuBar(menubar);

Menu menuGame = new Menu("游戏");
Menu menuHelp = new Menu("帮助");
menubar.add(menuGame);
menubar.add(menuHelp);

MenuItem menuItemBegin =new MenuItem("开始");
MenuItem menuItemLine1 =new MenuItem("-");
MenuItem menuItemSet = new MenuItem("自定义");
MenuItem menuItemOver = new MenuItem("退出");
MenuItem menuItemAbout = new MenuItem("关于");

CheckboxMenuItem ckeckboxMenuItemLevel1 = new CheckboxMenuItem("初级");
CheckboxMenuItem ckeckboxMenuItemLevel2 = new CheckboxMenuItem("中级");
CheckboxMenuItem ckeckboxMenuItemLevel3 = new CheckboxMenuItem("高级");

menuGame.add(menuItemBegin);
menuGame.add(menuItemLine1);
menuGame.add(ckeckboxMenuItemLevel1);
menuGame.add(ckeckboxMenuItemLevel2);
menuGame.add(ckeckboxMenuItemLevel3); 
menuGame.add(menuItemSet);
menuGame.add(menuItemLine1);
menuGame.add(menuItemOver);
menuHelp.add(menuItemAbout);
// frame.setCenter();

}

}
- -BombFrame全写错了貌似 根本添加不进去父类的方法 。。为什么继承Frame 我都new不出来实例额?

------解决方案--------------------
你是不是想调用这句? // frame.setCenter();

那么,在主函数main()的第一行代码
Frame frame = new Frame("扫雷");
改为
BombFrame frame = new BombFrame();




------解决方案--------------------
如果你这么定义,父类看不见子类的方法,父类只能看见自己的成员变量和方法