📄 shapes.java
字号:
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
public class Shapes extends JFrame
{
public Shapes()
{
super("Drawing 2D shapes");
setSize(425, 160);
setVisible(true);
}
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
//创建GradientPaint对象,颜色梯度起始坐标为(5,30),起始颜色为蓝色
//结束坐标为(35,100),结束颜色为黄色
//最后一个参数指定颜色梯度是否是循环的
g2d.setPaint(new GradientPaint(5, 30, Color.BLUE, 35, 100, Color.YELLOW, true));
//填充椭圆,边切矩形起始坐标为(5,30),宽、高度分别为65和100
g2d.fill(new Ellipse2D.Double(5, 30, 65, 100));
//设置颜色
g2d.setPaint(Color.RED);
//设置矩形边框的宽度
g2d.setStroke(new BasicStroke(10.0f));
//绘制矩形
g2d.draw(new Rectangle2D.Double(80, 30, 65, 100));
//创建一个缓冲图像对象
BufferedImage buffImage = new BufferedImage(10, 10,BufferedImage.TYPE_INT_RGB);
Graphics2D gg = buffImage.createGraphics();
gg.setColor(Color.YELLOW);
gg.fillRect(0, 0, 10, 10);
gg.setColor(Color.BLACK);
gg.drawRect(1, 1, 6, 6);
gg.setColor(Color.BLUE);
gg.fillRect(1, 1, 3, 3);
gg.setColor(Color.RED);
gg.fillRect(4, 4, 3, 3);
//创建一个填充图形的填充纹理TexturePaint对象
g2d.setPaint(new TexturePaint(buffImage, new Rectangle(10, 10)));
//填充圆角矩形
g2d.fill(new RoundRectangle2D.Double(155, 30, 75, 100, 50, 50));
g2d.setPaint(Color.BLUE);
//设置线条宽度
g2d.setStroke(new BasicStroke(6.0f));
//绘制弧线,Arc2D.PIE表示用两条直线封闭弧形
g2d.draw(new Arc2D.Double(240, 30, 75, 100, 0, 270, Arc2D.PIE));
g2d.setPaint(Color.GREEN);
//绘制一条实线,起点坐标(395,30),终点坐标(320,150)
g2d.draw(new Line2D.Double(395, 30, 320, 150));
//该数组存储每条虚线段的长度
float dashes[] = {10};
g2d.setPaint(Color.YELLOW);
//设置虚线特性,每个虚线段的长度为10个像素
g2d.setStroke(new BasicStroke(4, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 10, dashes, 0));
//绘制一条虚线,起点坐标(320,30),终点坐标(395,150)
g2d.draw(new Line2D.Double(320, 30, 395, 150));
}
public static void main(String[] args) {
Shapes application = new Shapes();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -