Почему я не попадаю в метод paintComponent()?
Пытаюсь написать программу, которая будет выводить в окно картинку.
Окно создаётся, но метод painComponent() (который я перезаписываю) не вызывается.
Я выполняю метод repaint и надеюсь, что он вызовет метод paintComponent() (который я перезаписал)
Но этого не происходит.Подскажите, что я делаю не так?
Спасибо
import javax.swing.*;
import java.awt.*;
public class GameField extends JPanel {
private Image imageBackground;
GameField(){
JPanel myPanel = new JPanel();
JFrame myFrame = new JFrame();
myFrame.setSize(576,720);
myFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
myFrame.setContentPane(myPanel);
loadImages();
repaint();
myFrame.setVisible(true);
}
public void loadImages(){
ImageIcon iiBackground = new ImageIcon("Pole1.png");
imageBackground = iiBackground.getImage();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
System.out.println("Я сюда попал!");
}
public static void main(String[] args) {
GameField window = new GameField();
}
}
Ответы (1 шт):
Автор решения: pumaex
→ Ссылка
Разобрался. Оказывается вместо строчки:
myFrame.setContentPane(myPanel);
нужно было написать:
myFrame.setContentPane(this);
Я думал, что эти строки равноценны!?