程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> javase-請大神幫忙看下,為什麼MyPanel中的Paint方法沒有被調用

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

}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved