Java AWT –绘制矩形,直线和圆

java.awt库是Java提供的类集,以便在窗口上绘制形状。 AWT的缩写表示Abstract Windowing Toolkit。 如今,该库已转换为庞大的类集,使用户可以创建整个基于GUI的应用程序。 这些类的外观取决于应用程序运行的平台。

所有这些类中最基础的是java.awt.geom库,该库用于绘制简单的几何形状。 本文讨论了绘制矩形,直线,圆等简单形状的代码。

JFrame和JPanel
JFrameJPanel是属于javax.swing libraries类。 Swing库在AWT库堆栈的顶部创建。 JFrame是一个类似于窗口的容器,它将各种组件保持在一个窗口中。 JPanel是一个容器,可容纳在JFrame并有助于对组件进行分组。

在下面的代码中,我们使用了JFrameJPanel来保存形状对象。

AWT绘图示例

现在,让我们跳到使用AWT库绘制图形的主要主题。 此页面显示了可用于绘制形状的各种类。 类的名称清楚地说明了可以绘制的可能形状。

DrawShapes.java
package com.mkyong;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class DrawShapes extends JFrame {

	private static final long serialVersionUID = 1L;

	public DrawShapes() {

		setSize(new Dimension(320, 320));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);

		JPanel p = new JPanel() {
			@Override
			public void paintComponent(Graphics g) {
				Graphics2D g2 = (Graphics2D) g;
				Shape line = new Line2D.Double(3, 3, 303, 303);
				Shape rect = new Rectangle(3, 3, 303, 303);
				Shape circle = new Ellipse2D.Double(100, 100, 100, 100);
				Shape roundRect = new RoundRectangle2D.Double(20, 20, 250, 250, 5, 25);
				g2.draw(line);
				g2.draw(rect);
				g2.draw(circle);
				g2.draw(roundRect);
			}
		};
		setTitle("My Shapes");
		this.getContentPane().add(p);
	}

	public static void main(String arg[]) {

		SwingUtilities.invokeLater(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				new DrawShapes();
			}
		});
	}

}

输出:

awt形状

上面的代码绘制了直线,矩形,圆形和圆形的矩形。 对于线性对象,通常传递给构造函数的参数包括坐标,宽度和高度。 对于诸如Ellipse或Arc的圆形形状,传递的参数包括原点的坐标,形状的宽度和高度。 通过执行代码,将以如下所示的窗口形式获得输出。

您可以使用以下参考资料获取有关AWT库中可用的不同类型的构造函数和形状的更多详细信息。

参考文献

  1. 可用的形状类别
  2. 有关绘制形状的更多详细信息
  3. Shape Class Java文件

翻译自: https://mkyong.com/awt/java-awt-drawing-rectangle-line-and-circle/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值