рисование текста в JPanel

Я думаю, что это предназначено ничего для значения. Wiki говорит:

"Нечто является наиболее часто используемым с панелью метасинтаксических переменных и foobar".

6
задан Peter Lawrey 20 July 2013 в 13:34
поделиться

4 ответа

Создайте внутренний класс, который расширяет JPanel внутри вашего основного класса:

class MyPanel extends JPanel {

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawString(Integer.toString(avg), 75, 75);
    }

}

Затем вам нужно вызвать перерисовку на этой панели после вызова computeAverage () в actionPerformed:

//event handling
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == avgBtn) {
        computeAverage();
        panel.repaint();
    }
}
6
ответ дан 8 December 2019 в 16:04
поделиться

Добавьте JLabel в JPanel.

Вызовите setText (String) в JLabel, и ваш текст будет нарисован внутри JPanel.

7
ответ дан 8 December 2019 в 16:04
поделиться

1) JFrame не имеет метода paintComponent (), поэтому опубликованный вами код ничего не сделает. Вам нужно создать собственную панель JPanel и переопределить ее метод paintComponent () для создания вашей пользовательской раскраски.

2) Даже если вы сделаете это, картина все равно не будет отображаться, потому что панель по умолчанию имеет нулевой размер. Поэтому вам нужно будет установить предпочтительный размер панели, чтобы убедиться, что она видна.

3) Зачем вы вообще это делаете. Все, что вам нужно сделать, это использовать JLabel и установить текст JLabel.

Мне трудно поверить, что вы смотрели другие руководства.

3
ответ дан 8 December 2019 в 16:04
поделиться

Я думаю, вам не следует создавать подклассы JFrame. Сделайте экземпляр JFrame экземпляром
переменную класса Main и добавьте к ней JPanel и т. д.

-1
ответ дан 8 December 2019 в 16:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: