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

问题描述

请大神帮忙看下,为什么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);

}

}

解决方案

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

 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);
    }

}

解决方案二:

http://277754769.iteye.com/blog/1600501

解决方案三:

你自定义的组件需要按照自己的业务绘图的话,需要重写父类的paint方法,但是你写的是Paint(首字母大写了,就不是同一个方法了),方法名称错误,就不是同一个方法,当然不会被调用了。
本质上还是调用的是父类默认的paint。
敲代码的手误了,修正下试试呗。

解决方案四:

重写paint方法,,方法名一定要是一样的

时间: 2024-12-28 09:59:12

javase-请大神帮忙看下,为什么MyPanel中的Paint方法没有被调用的相关文章

gcc-GCC编译时 链接阶段未指定正确的库文件 请大神帮忙看下

问题描述 GCC编译时 链接阶段未指定正确的库文件 请大神帮忙看下 解决方案 头文件有正确包含么?函数名拼写正确么?没找到这个函数. 解决方案二: 你的函数库文件没有link,你需要编译的时候通过-L来指定对应的lib 解决方案三: 我在做linphone 然后就出现问题了

ajax-Ajax传值和PHP接收,请大神帮忙看下

问题描述 Ajax传值和PHP接收,请大神帮忙看下 问题是:php代码里面什么都不写Ajax传值成功,PHP代码里面写个echo都失败.PHP框架是CodeIgniter . 解决方案 问题好久了,后来发现了.这是用ci框架写的,echo东西会有"警告错误",所以传值就不是代码中的那样了. 解决方案二: php Ajax Post 传值 解决方案三: php echo出的内容为成功返回的内容吧,你在success中判断下输出内容,还有dataType是json已经会把数据转成json格

fit-关于xslt fo tabel 的问题, 请大神帮忙看下

问题描述 关于xslt fo tabel 的问题, 请大神帮忙看下 fo:table-bodyfo:table-rowxsl:apply-templates//fo:table-row/fo:table-body/fo:table/fo:block/xsl:template fo:table-cell fo:block/fo:block/xsl:if fo:block/fo:block/xsl:if /xsl:attribute/xsl:attributescale-down-to-fit/xs

vs2012小问题-vs2012安装失败,请大神帮忙看下

问题描述 vs2012安装失败,请大神帮忙看下 visual studio2012 Prerequisites找不到申请对象,也无法卸载CSDN移动问答 图片在这个连接

使用newtonsoft.net反序列老是报错,请大神帮忙看下

问题描述 这个是我定义的实体类publicList<Bill>JsonResult{get;set;}publicstringResultType{get;set;}publicstringStatus{get;set;}publicstringMessage{get;set;}publicclassBill{publicstring欠费ID{get;set;}publicint用户ID{get;set;}publicint水表号{get;set;}//[JsonConverter(typeo

c语言-C语言小白请大神帮忙改一下代码,谢谢。

问题描述 C语言小白请大神帮忙改一下代码,谢谢. #include #include #include #include #include void choose();//选择函数 void shu();//猜数字函数 void paihang();//排行榜 void repaihang(int n);//更新排行榜 void replace();//初始化排行榜(没有记录时的排行榜) typedef struct { char name[10]; int score; }re; int ma

QT5的问题,具体形容在下面,请大神帮忙看一下

问题描述 QT5的问题,具体形容在下面,请大神帮忙看一下 输入条形码查询显示在最下面的Qlineedit中然后输入库存回车显示tableview中获取信息用的qnetwork这已经完成了,但是第一次输条形码回车输库存回车显示一条信息,第二次就变成2条同样的了,第三次三遍了,求助大神,求帮助啊,下面贴了代码上传的错误如上图,图片上的网络错误已经解决,上传状态都正常,只是上传数量的错误一直没有解决,第一条传了一遍,第二条传了两遍,第三条传了三遍 解决方案 看下代码,估计是你使用的是相同的对象或者结构

java-请熟悉Java swing的大神帮忙看下这是什么控件

问题描述 请熟悉Java swing的大神帮忙看下这是什么控件 就是常见的这种提示框,Java有没有这种控件?叫什么名字? 解决方案 这是用JComponent的一个方法实现的,方法名为public void setToolTipText(String text) 例如我最近用给 JLabel添加提示语, 代码如下: JLabel lbl_setOutput = new JLabel(); ...... lbl_setOutput.setToolTipText("修改输出目录"); 效

页面-java web网上书店有个问题 求大神帮忙看下

问题描述 java web网上书店有个问题 求大神帮忙看下 前一个页面一个表单传值, 请输入收货地址: 后面在OrderServlet中处理 其中的数据库中的操作没有问题 但是连到OrderServlet中出现求大神帮忙!!!!! 解决方案 你点击继续看看什么效果啊,如果有问题就贴出来 解决方案二: 没有效果就是停在这个servlet了,而且数据库方法也没有实现 解决方案三: 数据库方法也没有实现