Я думаю, что это предназначено ничего для значения. Wiki говорит:
"Нечто является наиболее часто используемым с панелью метасинтаксических переменных и foobar".
Создайте внутренний класс, который расширяет 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();
}
}
Добавьте JLabel в JPanel.
Вызовите setText (String) в JLabel, и ваш текст будет нарисован внутри JPanel.
1) JFrame не имеет метода paintComponent (), поэтому опубликованный вами код ничего не сделает. Вам нужно создать собственную панель JPanel и переопределить ее метод paintComponent () для создания вашей пользовательской раскраски.
2) Даже если вы сделаете это, картина все равно не будет отображаться, потому что панель по умолчанию имеет нулевой размер. Поэтому вам нужно будет установить предпочтительный размер панели, чтобы убедиться, что она видна.
3) Зачем вы вообще это делаете. Все, что вам нужно сделать, это использовать JLabel и установить текст JLabel.
Мне трудно поверить, что вы смотрели другие руководства.
Я думаю, вам не следует создавать подклассы JFrame. Сделайте экземпляр JFrame экземпляром
переменную класса Main и добавьте к ней JPanel и т. д.