java 绘图 绘制圆形 填充文字
时间: 2023-12-13 09:12:56 浏览: 160
要在Java中绘制一个圆形并在里面填充文字,可以使用Java的Graphics2D类。以下是一个简单的例子:
```java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class CircleText extends JPanel {
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// 绘制圆形
g2d.setColor(Color.RED);
g2d.fill(new Ellipse2D.Double(50, 50, 200, 200));
// 填充文字
g2d.setColor(Color.WHITE);
g2d.setFont(new Font("Arial", Font.BOLD, 50));
String text = "Hello World!";
int textWidth = g2d.getFontMetrics().stringWidth(text);
int x = 150 - textWidth/2;
int y = 150 + g2d.getFontMetrics().getAscent()/2;
g2d.drawString(text, x, y);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Circle Text");
frame.add(new CircleText());
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
```
这个例子使用了Java的Swing库来创建一个窗口,并在窗口中绘制一个圆形和填充文字。在paint方法中,我们首先使用Graphics2D类的setRenderingHint方法来启用抗锯齿和文本抗锯齿,以获得更好的绘图效果。然后,我们使用Graphics2D类的fill方法来绘制一个红色的圆形,使用setColor方法设置颜色。接着,我们使用setColor和setFont方法设置文字颜色和字体,并使用drawString方法在圆形中央填充文字。注意,我们使用FontMetrics类来计算文字的宽度和高度,以便将其居中放置在圆形中央。最后,我们使用JFrame类来创建一个窗口,并将CircleText对象添加到窗口中。当我们运行程序时,应该会看到一个红色的圆形,里面填充着白色的 "Hello World!" 文字。
阅读全文