java.awt
库是Java提供的类集,以便在窗口上绘制形状。 AWT的缩写表示Abstract Windowing Toolkit。 如今,该库已转换为庞大的类集,使用户可以创建整个基于GUI的应用程序。 这些类的外观取决于应用程序运行的平台。
所有这些类中最基础的是java.awt.geom
库,该库用于绘制简单的几何形状。 本文讨论了绘制矩形,直线,圆等简单形状的代码。
JFrame和JPanel
JFrame
和JPanel
是属于javax.swing libraries
类。 Swing库在AWT库堆栈的顶部创建。 JFrame
是一个类似于窗口的容器,它将各种组件保持在一个窗口中。 JPanel
是一个容器,可容纳在JFrame
并有助于对组件进行分组。
在下面的代码中,我们使用了JFrame
和JPanel
来保存形状对象。
AWT绘图示例
现在,让我们跳到使用AWT库绘制图形的主要主题。 此页面显示了可用于绘制形状的各种类。 类的名称清楚地说明了可以绘制的可能形状。
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();
}
});
}
}
输出:
上面的代码绘制了直线,矩形,圆形和圆形的矩形。 对于线性对象,通常传递给构造函数的参数包括坐标,宽度和高度。 对于诸如Ellipse或Arc的圆形形状,传递的参数包括原点的坐标,形状的宽度和高度。 通过执行代码,将以如下所示的窗口形式获得输出。
您可以使用以下参考资料获取有关AWT库中可用的不同类型的构造函数和形状的更多详细信息。
参考文献
翻译自: https://mkyong.com/awt/java-awt-drawing-rectangle-line-and-circle/