/*java
*畫一個圓函數
*/字體
import java.awt.*; import javax.swing.*; public class PaintCircle extends JFrame{ public static void main(String[] args) { // TODO Auto-generated method stub PaintCircle paintCircle = new PaintCircle(); } MyPanel mpMyPanel = null; public PaintCircle(){ mpMyPanel = new MyPanel(); this.add(mpMyPanel); this.setSize(400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } //定義一個MyPanel(用於實現本身的畫板,是用於繪圖和顯示繪圖的區域) class MyPanel extends JPanel{ //覆蓋JPanel的paint方法 //Graphics是繪圖的重要類,能夠理解爲畫筆 public void paint(Graphics g){ //調用父類函數完成初始化 super.paint(g); //畫一個圓 g.drawOval(10, 10, 30, 30); } }
Component類提供了兩個和繪圖相關的重要方法:this
一、paint(Graphics g)繪製組件的外觀spa
二、repaint()刷新組件的外觀code
當組件第一次在屏幕顯示時,程序會自動調用paint()來繪製組件。blog
如下狀況時,paint()方法會被調用:圖片
一、窗口最小化,再最大化。get
二、窗口的大小發生變化。it
三、調用repaint()方法。
繪製圖片
//畫圖片 Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/QQ.png")); //顯示 g.drawImage(image, 10, 10, 139, 154, this);
畫文字,設置字體及顏色
//畫文字,設置字體及顏色 g.setFont(new Font("宋體", Font.BOLD, 30)); g.setColor(Color.RED); g.drawString("我愛天安門", 60, 60);