Java Graphics 设置样式

Java是一种面向对象的编程语言,也是一种广泛应用的编程语言。在Java中,可以使用Graphics类来绘制各种图形和实现各种样式。Graphics类提供了一系列方法来设置绘制的样式,包括颜色、字体、线条等。本文将介绍如何使用Java Graphics类来设置样式,并提供相应的代码示例。

绘制基本图形

在开始设置样式之前,我们首先需要了解如何使用Java Graphics类来绘制基本的图形。在Java中,可以通过继承JPanel类并覆写paintComponent方法来实现自定义绘图。以下是一个简单的示例代码,用于绘制一个红色的矩形:

import javax.swing.*;
import java.awt.*;

public class MyPanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.RED);
        g.fillRect(50, 50, 200, 100);
    }
    
    public static void main(String[] args) {
        JFrame frame = new JFrame("MyPanel");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.add(new MyPanel());
        frame.setVisible(true);
    }
}

在上述代码中,我们创建了一个继承自JPanel的自定义类MyPanel,并覆写了其paintComponent方法。在paintComponent方法中,首先调用父类的paintComponent方法,然后使用Graphics的setColor方法设置画笔颜色为红色,最后使用Graphics的fillRect方法绘制一个矩形。

设置颜色

要设置绘制的颜色,可以使用Graphics的setColor方法。setColor方法接受一个Color参数,用于设置画笔的颜色。Color类提供了一系列静态成员变量,用于表示不同颜色,例如Color.RED表示红色,Color.BLUE表示蓝色。以下是一个设置颜色的示例代码:

import javax.swing.*;
import java.awt.*;

public class MyPanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.RED);
        g.fillRect(50, 50, 200, 100);
        g.setColor(Color.BLUE);
        g.fillRect(100, 100, 200, 100);
    }
    
    public static void main(String[] args) {
        JFrame frame = new JFrame("MyPanel");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        frame.add(new MyPanel());
        frame.setVisible(true);
    }
}

在上述代码中,我们先绘制一个红色的矩形,然后设置画笔颜色为蓝色,再绘制一个蓝色的矩形。

设置字体

要设置绘制的字体,可以使用Graphics的setFont方法。setFont方法接受一个Font参数,用于设置画笔的字体。Font类提供了多个构造方法,可以指定字体的名称、样式和大小。以下是一个设置字体的示例代码:

import javax.swing.*;
import java.awt.*;

public class MyPanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setFont(new Font("Arial", Font.BOLD, 20));
        g.drawString("Hello, World!", 50, 50);
    }
    
    public static void main(String[] args) {
        JFrame frame = new JFrame("MyPanel");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 100);
        frame.add(new MyPanel());
        frame.setVisible(true);
    }
}

在上述代码中,我们创建了一个字体对象,并将其设置为画笔的字体。然后使用Graphics的drawString方法绘制一个字符串。

设置线条样式

要设置绘制的线条样式,可以使用Graphics2D类的setStroke方法。setStroke方法接受一个Stroke参数,用于设置线条的样式。在Java中,可以使用BasicStroke类来创建不同样式的线条。以下是一个设置线条样式的示例代码:

import javax.swing.*;
import java.awt.*;

public class MyPanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setStroke(new BasicStroke(5));
        g2d.drawLine(50, 50, 200, 200);
    }