使用 Graphics2D 設定繪圖顏色、字體並繪製字串:
package com.graphics;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.util.Date;
import javax.swing.*;
public class DrawString extends JFrame {
private Shape rect = new Rectangle2D.Double(10, 10, 200, 80);
private Font font = new Font("宋體", Font.BOLD, 16);
private Date date = new Date();
public DrawString() {
this.setSize(230, 140);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
add(new CanvasPanel());
this.setTitle("繪圖文字示例");
}
class CanvasPanel extends JPanel {
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.CYAN);
g2.fill(rect); // 填充矩形背景
g2.setColor(Color.BLUE);
g2.setFont(font); // 設定字體
g2.drawString("現在的時間是", 20, 30);
g2.drawString(String.format("%tr", date), 50, 60); // 格式化時間
}
}
public static void main(String[] args) {
new DrawString().setVisible(true);
}
}
執行結果:

drawImage() 可將圖片資源繪製到繪圖上下文,支援縮放、翻轉等特效。
package com.graphics;
import java.awt.*;
import java.awt.Image;
import java.net.URL;
import javax.swing.*;
public class DrawImage extends JFrame {
private Image img;
public DrawImage() {
URL url = DrawImage.class.getResource("1.jpg");
img = Toolkit.getDefaultToolkit().getImage(url);
this.setSize(250, 200);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
add(new CanvasPanel());
this.setTitle("繪圖圖片示例");
}
class CanvasPanel extends Canvas {
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(img, 0, 0, this); // 顯示圖片
}
}
public static void main(String[] args) {
new DrawImage().setVisible(true);
}
}
執行結果:

提示:Graphics2D還提供setStroke()設定筆畫粗細、虛線樣式,setRenderingHint()啟用抗鋸齒,讓繪圖效果更專業。