public class TestGraphics extends Frame {
public static void main(String[] args) {
TestGraphics gp = new TestGraphics();
gp.setBounds(300, 300, 100, 100);
gp.setVisible(true);
}
}
| 代碼行 | 含義 | 關鍵點 |
|---|---|---|
public class TestGraphics extends Frame | 定義類繼承 java.awt.Frame | Frame 是頂級窗口容器,有標題欄、邊框、可最小化/最大化/關閉 |
public static void main(String[] args) | 程序入口,JVM 調用啟動 | 必須 static,返回 void,參數 String[] |
TestGraphics gp = new TestGraphics(); | 實例化窗口對象 | 調用無參構造器,繼承自 Frame 的初始化邏輯自動執行 |
gp.setBounds(300, 300, 100, 100); | 設置窗口位置和大小 | 參數:x, y, width, height。坐標原點 (0,0) 為屏幕左上角 |
gp.setVisible(true); | 顯示窗口 | Frame 默認不可見,必須調用此方法顯示;false 為隱藏 |
import java.awt.*;
public class TestGraphics extends Frame {
public TestGraphics() {
setTitle("繪圖測試");
setSize(400, 300);
setLocationRelativeTo(null); // 居中
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose(); // 釋放資源
System.exit(0);
}
});
}
@Override
public void paint(Graphics g) {
// 繪製圖形
g.drawString("Hello AWT!", 50, 50);
g.drawRect(50, 60, 100, 50);
g.fillOval(200, 60, 50, 50);
g.setColor(Color.RED);
g.drawLine(50, 150, 350, 150);
}
public static void main(String[] args) {
new TestGraphics().setVisible(true);
}
}
repaint() 請求重繪。drawXxx、fillXxx、setColor/Font 等方法。update(Graphics g) 使用離屏圖像。AWT 為 Java 1.0 早期 GUI,功能受限。現代開發建議:
JFrame、JPanel,組件豐富、可換膚、雙緩衝默認開啟。示例代碼演示了 AWT 創建窗口的最小流程:繼承 Frame → 實例化 → 設置幾何屬性 → 顯示。理解 paint 回調機制與坐標系是繪圖編程基礎。實際項目請使用 Swing 或 JavaFX。