Как нарисовать любой текст, используя drawString () в Java - PullRequest
0 голосов
/ 04 октября 2019

Я вхожу в графические вещи в 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);
    }
}

Это создает окно с текстом «Мой текст» в нем, как и ожидалось. Теперь возникает вопрос: как я могу нарисовать любую строку? После этого мне нужно записать строку в метод paint(), но я хочу ввести ее откуда-то еще как переменную.

1 Ответ

0 голосов
/ 04 октября 2019

Не используйте paint() и не рисуйте прямо в JFrame. Нарисуйте JPanel и переопределите paintComponent(). Чтобы нарисовать определенную строку, сохраните ее в поле экземпляра и затем вызовите repaint(). Вы также можете изучить LineMetrics и FontMetrics, чтобы иметь возможность правильно центрировать строку.

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawString(mystring, x, y);
}

Ознакомьтесь с Учебными пособиями по Java для получения дополнительной информации о рисовании.

...