我的文本需要水平居中并在窗口顶部下方 20 像素处。此外,目标徽标 (g.fillOvals) 需要在文本下方水平和垂直居中。我怎么做?我知道 g.drawString x 和 y 坐标编辑文本,但我的变化几乎没有。谢谢!
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.WHITE);
Font textFont = new Font("Helvetica", Font.BOLD, 72);
setFont(textFont);
FontMetrics fm = g.getFontMetrics(textFont);
int ascend = fm.getAscent();
int w = getWidth();
int h = getHeight();
int sw = fm.stringWidth("Welcome to Target");
g.drawString("Welcome to Target", w/2 - sw/2, h/2 + ascend/2);
g.setColor(Color.red);
g.fillOval((w / 2) - 100, (w / 2) - 100, 200, 200);
g.setColor(Color.WHITE);
g.fillOval((w / 2) - 65, (w / 2) - 65, 130, 130);
g.setColor(Color.red);
g.fillOval((w / 2) - 30, (w / 2) - 30, 60, 60);
}