0

水平方向に中央揃えし、ウィンドウの上部から 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);
    }
4

1 に答える 1

0

これを試して:

g.drawString("Welcome to Target", (w/2 - sw/2), (FONT_HEIGHT + 20));

編集:フォントの高さを一定にして、より適切に管理し、より一貫したプログラミングを可能にします。

final static String FONT_HEIGHT = 72;
g.fillOvals((w/2 - FONT_HEIGHT), 200, (w/2 FONT_HEIGHT), 200);
于 2013-02-28T05:21:00.550 に答える