java如何画长方形
使用Java绘制长方形的方法
在Java中绘制长方形可以通过多种方式实现,以下是几种常见的方法:
使用AWT和Swing绘制长方形
通过继承JPanel并重写paintComponent方法,可以使用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, 200, 100);
// 绘制实心长方形
g.fillRect(300, 50, 200, 100);
}
public static void main(String[] args) {
JFrame frame = new JFrame("绘制长方形");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DrawRectangle());
frame.setSize(600, 300);
frame.setVisible(true);
}
}
使用JavaFX绘制长方形
JavaFX提供了Rectangle类,可以更方便地绘制长方形并设置样式。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
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, 200, 100);
rect1.setFill(null);
rect1.setStroke(Color.BLACK);
// 绘制实心长方形
Rectangle rect2 = new Rectangle(300, 50, 200, 100);
rect2.setFill(Color.BLUE);
pane.getChildren().addAll(rect1, rect2);
Scene scene = new Scene(pane, 600, 300);
primaryStage.setScene(scene);
primaryStage.setTitle("绘制长方形");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
使用Graphics2D绘制带样式的长方形
如果需要更复杂的样式(如虚线边框、渐变填充等),可以使用Graphics2D类。

import javax.swing.*;
import java.awt.*;
public class StyledRectangle extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// 设置虚线边框
float[] dashPattern = {10, 5};
g2d.setStroke(new BasicStroke(2, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER, 10, dashPattern, 0));
g2d.drawRect(50, 50, 200, 100);
// 设置渐变填充
GradientPaint gradient = new GradientPaint(300, 50, Color.RED,
500, 150, Color.YELLOW);
g2d.setPaint(gradient);
g2d.fillRect(300, 50, 200, 100);
}
public static void main(String[] args) {
JFrame frame = new JFrame("带样式的长方形");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new StyledRectangle());
frame.setSize(600, 300);
frame.setVisible(true);
}
}
参数说明
drawRect(x, y, width, height):绘制空心长方形,x和y为左上角坐标,width和height为宽度和高度。fillRect(x, y, width, height):绘制实心长方形,参数含义同上。- JavaFX的
Rectangle类通过设置fill和stroke属性控制填充和边框样式。
以上方法可以根据需求选择使用,AWT/Swing适用于简单的图形绘制,JavaFX适合更现代的UI开发,而Graphics2D提供了更丰富的图形样式控制。






