首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 2D 繪圖進階:顏色、筆畫、字體與圖片繪製完整教學

     編輯:Java 綜合教學

文字繪製與字體、顏色設定

使用 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() 啟用抗鋸齒,讓繪圖效果更專業。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved