Java Graphic和Paint都是Java中用于繪制畫面的庫。
Graphic是java.awt包下的一個類,它提供了一系列的繪制方法,可以在組件上繪制各種圖形,包括線段、矩形、橢圓等等。使用Graphic類繪制圖形需要先通過getGraphics()方法獲取該組件的Graphics對象,然后調用對應的繪制方法進行繪制。
import java.awt.*; import javax.swing.*; public class Example extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); g.drawLine(0, 0, 50, 50); g.drawRect(20, 20, 80, 50); g.drawOval(100, 100, 50, 50); } public static void main(String[] args) { JFrame frame = new JFrame("Example"); frame.add(new Example()); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
Paint是Java Swing中的一個抽象類,它提供了更加豐富的繪制支持。和Graphic不同,Paint是通過繼承JComponent類實現的,它的paintComponent()方法可以直接繪制圖形。除了繪制基本圖形外,Paint還支持繪制圖片、漸變等特殊效果。
import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class Example extends JComponent { public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setPaint(new GradientPaint(0, 0, Color.RED, 100, 0, Color.BLUE)); g2.fill(new Rectangle2D.Float(20, 20, 80, 50)); g2.draw(new Line2D.Float(0, 0, 50, 50)); g2.setPaint(Color.GREEN); g2.fill(new Ellipse2D.Float(100, 100, 50, 50)); Image img = new ImageIcon("image.png").getImage(); g2.drawImage(img, 150, 150, null); } public static void main(String[] args) { JFrame frame = new JFrame("Example"); frame.add(new Example()); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
總而言之,Java Graphic和Paint都是非常重要的繪圖工具,可以實現各種復雜的圖形操作。在使用的時候要注意選擇合適的庫,并且掌握基本的繪圖方法。