JPanel не вызывает paintComponent в Java - PullRequest
1 голос
/ 02 октября 2019

Я работал над этим часами, и это не работает. Я хочу, чтобы на экране появился пиксель, но компонент рисования не работает. Я не понимаю, почему. Метод setupFrame вызывается из основного метода.

public static void setupFrame()
{
    JFrame frame = new JFrame("graphicsTest");
    JPanel panel = new JPanel();
    panel.setBounds(0, 0, 1080, 1080/2);
    frame.add(panel);
    frame.pack();
    frame.setSize(1080, 1080/2);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.repaint();
}

@Override
public void paintComponent(Graphics g) {
        g.fillRect(0, 0, 50, 50);
}  

1 Ответ

1 голос
/ 02 октября 2019

Вы перегружаете paintComponent() в созданном вами классе (назовем его MyPanel), но вы создаете экземпляр другого класса:

JPanel panel = new JPanel();

Так что экземпляра нетMyPanel здесь и метод не вызывается. Вам нужно использовать класс, в котором вы перегрузили метод paintComponent:

MyPanel panel = new MyPanel();

Или (это должно быть эквивалентно):

JPanel panel = new MyPanel();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...