java中,Graphics画了一个矩形,后面在矩形内画一个文本
时间: 2024-05-01 19:17:34 浏览: 110
,如何使文本居中对齐?
可以使用FontMetrics类中的方法获取文本的宽度和高度,然后计算出文本居中时的坐标位置,再利用Graphics类的drawString方法将文本绘制在该位置上即可。具体实现可以参考以下示例代码:
```
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame {
public static void main(String[] args) {
Test frame = new Test();
frame.setVisible(true);
}
public Test() {
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.BLUE);
g.drawRect(50, 50, 200, 100); // 画矩形
g.setColor(Color.BLACK);
Font font = new Font("宋体", Font.PLAIN, 20);
g.setFont(font);
FontMetrics fontMetrics = g.getFontMetrics();
String text = "Hello World!";
int textWidth = fontMetrics.stringWidth(text);
int textHeight = fontMetrics.getHeight();
int x = 50 + (200 - textWidth) / 2; // 计算文本居中时的x坐标位置
int y = 50 + (100 - textHeight) / 2 + fontMetrics.getAscent(); // 计算文本居中时的y坐标位置
g.drawString(text, x, y); // 画文本
}
}
```
在该示例代码中,我们首先使用Graphics类的drawRect方法画出一个矩形,然后设置绘图颜色为黑色,并使用Font类创建一个字体对象,其中字号为20,字体名称为宋体。接下来,我们通过FontMetrics类中的stringWidth方法获取文本的宽度,getHeight方法获取文本的高度,并通过getAscent方法获取文本的上升高度。然后,我们计算出文本居中时的x和y坐标位置,并使用Graphics类的drawString方法将文本绘制在该位置上。运行该代码后,可以看到在矩形内绘制了一个居中对齐的文本。
阅读全文
相关推荐














