在Graphics2D Java中设置文本边界可以通过以下步骤实现:
以下是一个示例代码:
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TextBoundaries extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// 设置字体
g2d.setFont(new Font("Arial", Font.PLAIN, 12));
// 获取字体边界信息
FontMetrics fontMetrics = g2d.getFontMetrics();
int ascent = fontMetrics.getAscent();
int descent = fontMetrics.getDescent();
int stringWidth = fontMetrics.stringWidth("Hello World!");
// 绘制文本并设置位置
int x = getWidth() / 2 - stringWidth / 2;
int y = getHeight() / 2 + (ascent - descent) / 2;
g2d.drawString("Hello World!", x, y);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Text Boundaries Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.add(new TextBoundaries());
frame.setVisible(true);
}
}
该示例代码中,首先设置了字体为Arial,大小为12。然后通过FontMetrics类获取了字体的上升高度(ascent)、下降高度(descent)和文本的宽度(stringWidth)。最后根据获取的边界信息和绘制文本的位置,绘制了居中的文本"Hello World!"。
领取专属 10元无门槛券
手把手带您无忧上云