java如何画一个矩形
使用Graphics类绘制矩形
在Java中,可以通过java.awt.Graphics类来绘制矩形。Graphics类提供了drawRect和fillRect方法,分别用于绘制空心矩形和填充矩形。
import javax.swing.*;
import java.awt.*;
public class DrawRectangle extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// 绘制空心矩形
g.drawRect(50, 50, 100, 80);
// 绘制填充矩形
g.fillRect(200, 50, 100, 80);
}
public static void main(String[] args) {
JFrame frame = new JFrame("绘制矩形示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.add(new DrawRectangle());
frame.setVisible(true);
}
}
使用Graphics2D类绘制矩形
Graphics2D是Graphics的子类,提供了更丰富的绘图功能,例如设置线条宽度、颜色渐变等。
import javax.swing.*;
import java.awt.*;
public class DrawRectangle2D extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// 设置线条宽度
g2d.setStroke(new BasicStroke(3));
// 绘制空心矩形
g2d.drawRect(50, 50, 100, 80);
// 设置填充颜色
g2d.setColor(Color.BLUE);
// 绘制填充矩形
g2d.fillRect(200, 50, 100, 80);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Graphics2D绘制矩形示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.add(new DrawRectangle2D());
frame.setVisible(true);
}
}
使用JavaFX绘制矩形
JavaFX提供了更现代的图形库,可以通过javafx.scene.shape.Rectangle类绘制矩形。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class DrawRectangleFX extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
// 绘制空心矩形
Rectangle rect1 = new Rectangle(50, 50, 100, 80);
rect1.setFill(null);
rect1.setStroke(Color.BLACK);
// 绘制填充矩形
Rectangle rect2 = new Rectangle(200, 50, 100, 80);
rect2.setFill(Color.BLUE);
pane.getChildren().addAll(rect1, rect2);
Scene scene = new Scene(pane, 400, 300);
primaryStage.setTitle("JavaFX绘制矩形示例");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
使用BufferedImage绘制矩形
如果需要在图像上绘制矩形,可以使用BufferedImage和Graphics2D。
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
public class DrawRectangleImage {
public static void main(String[] args) {
// 创建一个BufferedImage对象
BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = image.createGraphics();
// 设置背景色
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, 400, 300);
// 绘制空心矩形
g2d.setColor(Color.BLACK);
g2d.drawRect(50, 50, 100, 80);
// 绘制填充矩形
g2d.setColor(Color.BLUE);
g2d.fillRect(200, 50, 100, 80);
g2d.dispose();
// 显示图像
JFrame frame = new JFrame("BufferedImage绘制矩形示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JLabel(new ImageIcon(image)));
frame.pack();
frame.setVisible(true);
}
}
使用Java 2D API绘制圆角矩形
Graphics2D还支持绘制圆角矩形,通过drawRoundRect和fillRoundRect方法实现。
import javax.swing.*;
import java.awt.*;
public class DrawRoundRectangle extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// 绘制空心圆角矩形
g2d.drawRoundRect(50, 50, 100, 80, 20, 20);
// 绘制填充圆角矩形
g2d.setColor(Color.BLUE);
g2d.fillRoundRect(200, 50, 100, 80, 20, 20);
}
public static void main(String[] args) {
JFrame frame = new JFrame("绘制圆角矩形示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.add(new DrawRoundRectangle());
frame.setVisible(true);
}
}




