示例 1 使用 Java 绘制和填充矩形
这是一个在矩形中打印矩形和填充颜色的示例。 https://i.stack.imgur.com/dlC5v.jpg https://i.stack.imgur.com/dlC5v.jpg
Graphics 类的大多数方法可以分为两个基本组:
- 绘制和填充方法,使你能够渲染基本形状,文本和图像
- 属性设置方法,它们会影响绘图和填充的显示方式
代码示例:让我们从一个绘制矩形并在其中填充颜色的示例开始。在那里我们声明了两个类,一个类是 MyPanel,另一个类是 Test。在 MyPanel 类中,我们使用 drawRect()
和 fillRect()mathods 来绘制矩形并在其中填充 Color。我们通过 setColor(Color.blue)
方法设置颜色。在第二类中,我们测试我们的图形,它是 Test Class,我们制作一个 Frame 并将 MyPanel 与 p = new MyPanel()
对象放在其中。通过运行 Test Class,我们看到一个 Rectangle 和一个 Blue Color Filled Rectangle。
头等舱:MyPanel
import javax.swing.*;
import java.awt.*;
// MyPanel extends JPanel, which will eventually be placed in a JFrame
public class MyPanel extends JPanel {
// custom painting is performed by the paintComponent method
@Override
public void paintComponent(Graphics g){
// clear the previous painting
super.paintComponent(g);
// cast Graphics to Graphics2D
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red); // sets Graphics2D color
// draw the rectangle
g2.drawRect(0,0,100,100); // drawRect(x-position, y-position, width, height)
g2.setColor(Color.blue);
g2.fillRect(200,0,100,100); // fill new rectangle with color blue
}
}
第二类:测试
import javax.swing.;
import java.awt.;
public class Test { //the Class by which we display our rectangle
JFrame f;
MyPanel p;
public Test(){
f = new JFrame();
// get the content area of Panel.
Container c = f.getContentPane();
// set the LayoutManager
c.setLayout(new BorderLayout());
p = new MyPanel();
// add MyPanel object into container
c.add(p);
// set the size of the JFrame
f.setSize(400,400);
// make the JFrame visible
f.setVisible(true);
// sets close behavior; EXIT_ON_CLOSE invokes System.exit(0) on closing the JFrame
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[ ]){
Test t = new Test();
}
}
有关边框布局的更多说明: https : //docs.oracle.com/javase/tutorial/uiswing/layout/border.html
paintComponent()
- 这是一种主要的绘画方法
- 默认情况下,它首先绘制背景
- 之后,它执行自定义绘画(绘制圆,矩形等)
Graphic2D 指的是 Graphic2D Class
注意: Java 2D API 使你可以轻松执行以下任务:
- 绘制线条,矩形和任何其他几何形状。
- 用纯色或渐变和纹理填充这些形状。
- 使用选项绘制文本,以便精确控制字体和渲染过程。
- 绘制图像,可选择应用过滤操作。
- 在上述任何渲染操作期间应用合成和变换等操作。