public class FiveChessFrame extends JFrame implements MouseListener{  int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height;   public FiveChessFrame(){  this.setTitle("五子棋");  this.setSize(500, 500);  //设置窗体出现位置  this.setLocation((width-500)/2,(height-500)/2);  //将窗体设置为不可改变  this.setResizable(false);  //将窗体关闭方式设置为默认关闭程序后结束  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  this.setVisible(true); }  public void paint(Graphics g){  g.setFont(new Font("黑体",Font.BOLD,20));  g.drawString("游戏信息", 130,60 );  g.setFont(new Font("宋体",0,14));  g.drawString("黑方时间:", 30, 470);  g.drawString("白方时间:", 260, 470); } @Override public void mouseClicked(MouseEvent e) {   } @Override public void mousePressed(MouseEvent e) {   } @Override public void mouseReleased(MouseEvent e) {   } @Override public void mouseEntered(MouseEvent e) {   } @Override public void mouseExited(MouseEvent e) {   }}
我想问的是public void paint(Graphics g){}方法 我并没有写在构造方法里,为什么我FiveChessFrame ff = new FiveChessFrame(); 这样运行 paint方法里的东西也显示出来了呢?

解决方案 »

  1.   

    创建窗口时候会调用paint方法绘制,Jframe会找其paint实现,发现paint被重写了,于是就调用子类的
    也就是你的paint方法了,没写过swing。不过我想肯定是这样的啦
      

  2.   

    http://developer.51cto.com/art/200907/137237.htm
      

  3.   

    你重写了paint(Graphics g)方法,当你new一个FiveChessFrame是就会自动调用paint方法