如何在Java中使用drawString()绘制文本

问题描述 投票:0回答:1

我正在学习Java中的图形化内容,并希望显示文本。如我所读,drawString()是实现此目的的标准方法。我绘制字符串的代码是:

import java.awt.*;
import javax.swing.*;

public class TextDisplay extends JPanel{
    public void paint(Graphics g) {
        g.drawString("My Text", 10, 20);
    }
}

执行此操作的类是:

import javax.swing.*;

public class Main {
    public static void main(String[] args) {
        TextDisplay d = new TextDisplay();
        JFrame f = new JFrame();
        f.getContentPane().add(d);
        f.setSize(200,200);
        f.setVisible(true);
    }
}

这将按预期生成一个带有文本“我的文本”的窗口。现在的问题是:如何绘制任何字符串?为此,我必须将String写入paint()方法,但是我想从其他地方将其作为变量输入。

java drawstring
1个回答
0
投票

请勿使用paint()或直接画入JFrame。拉入JPanel并覆盖paintComponent()。要绘制特定的String,请将其存储在实例字段中,然后调用repaint()。您可能还需要检查LineMetricsFontMetrics以使字符串正确居中。

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawString(mystring, x, y);
}
© www.soinside.com 2019 - 2024. All rights reserved.