例子:
import java.awt.Color;
import java.awt.Frame;
import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame {
public MyFrame() {
this.setTitle("我的第一個窗體");// 設置窗體的標題
MyPanel panel = new MyPanel();
this.getContentPane().add(panel);
this.setSize(300, 300);// 設置窗體的大小
this.setLocation(260, 150);// 設置窗體的初始位置
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.out.println("asd");
// this.setBounds(260, 150, 300, 300);//設置窗體的坐標、大小,相當於前面2行代碼
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
frame.setVisible(true);
}
}
class MyPanel extends JPanel {
// 覆蓋JPanel的paint方法,程序自動調用paint方法,窗口最小化,再最大化,窗口大小變化
// Graphics是繪圖的重要類,可以理解成一只畫筆
public void paint(Graphics g) {
// 1.調用父類函數完成初始化
// 這句話不能少
super.paint(g);
System.out.println("paint coming");
// 畫圓,還可話直線,矩形邊框,等圖像
g.drawOval(10, 10, 30, 30);
Image im = Toolkit.getDefaultToolkit().getImage(
Panel.class.getResource("/images/dog.jpg"));//獲取圖片,其中"/images/dog.jpg"表示bin目錄下的images/dog.jpg
System.out.println(Panel.class.getResource("/images/dog.jpg"));
// 顯示圖片
g.drawImage(im, 10, 10, 200, 150, this);
// 如何畫出字
g.setColor(Color.red);
g.setFont(new Font("華文彩雲", Font.BOLD, 30));
g.drawString("祖國萬歲", 100, 100);
g.setColor(Color.yellow);
// 畫出我的坦克(到時再封裝成一個函數)
// 1.畫出左邊的矩形
g.fillRect(10, 10, 15, 15);
}
}