txh3955 2015-12-05 13:53 采纳率: 50%
浏览 2326
已采纳

请大神帮忙看下,为什么MyPanel中的Paint方法没有被调用

package javademo;

import javax.swing.*;
import java.awt.*;

public class DrawDemo extends JFrame{

MyPanel mp = null;

public static void main(String []args){
        DrawDemo drawdemo = new DrawDemo();

}    

public DrawDemo(){
    mp = new MyPanel();
    this.add(mp);
    this.setSize(400, 400);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
}

}

class MyPanel extends JPanel {
//重写JPanel的Paint方法
//Graphics是绘图的重要类,你可以把它理解成一支画笔
public void Paint(Graphics g){
//调用父类函数完成初始化
//这句话不能少
super.paint(g);
System.out.println("321");
//先画一个圆圈
g.drawOval(10, 10, 40, 60);

}

}

  • 写回答

4条回答 默认 最新

  • 毕小宝 博客专家认证 2015-12-06 00:13
    关注

    补充说明,测试了下,的确是方法名称写错了。修正就好了。

     import javax.swing.*;
    import java.awt.*;
    
    public class DrawDemo extends JFrame {
        MyPanel mp = null;
    
        public static void main(String[] args) {
            DrawDemo drawdemo = new DrawDemo();
    
        }
    
        public DrawDemo() {
            mp = new MyPanel();
            this.add(mp);
            this.setSize(400, 400);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setVisible(true);
        }
    
    }
    
    class MyPanel extends JPanel {
        // 重写JPanel的Paint方法
        // Graphics是绘图的重要类,你可以把它理解成一支画笔
        public void paint(Graphics g) {
            // 调用父类函数完成初始化
            // 这句话不能少
            super.paint(g);
            System.out.println("321");
            // 先画一个圆圈
            g.drawOval(10, 10, 40, 60);
        }
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 outlook无法配置成功
  • ¥15 Pwm双极模式H桥驱动控制电机
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换