Я новичок в Java. Ниже приведены два класса, один класс расширяет JComponent
, необходимо переопределить метод paintComponent
. Другой класс расширяет JPanel
, также необходимо переопределить метод paintComponent
.paintComponent и super.paintComponent
Почему DrawingPanel
класс (продлить JPanel
) необходимо вызвать метод super.paintComponent(g)
, но CollageComponent
(продлить JComponent
) не нужно вызывать super.paintComponent(g)
?
Я так смущен.
public class CollageComponent extends JComponent {
public void paintComponent(Graphics g) {
g.setColor(Color.ORANGE);
g.fillRect(100, 50, 300, 75);
// inner green fill
g.setColor(Color.GREEN);
g.fillOval(300, 75, 100, 75);
}
}
public class DrawingPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.ORANGE);
g.fillRect(100, 50, 300, 75);
// inner green fill
g.setColor(Color.GREEN);
g.fillOval(300, 75, 100, 75);
}
}
Я бы сказал, что вам нужно всегда называть его, потому что 'JPanel' расширяет' JComponent' и 'JComponent' имеет код, необходимый для выполнения –
, но CollageComponent также расширяет JComponent. – user3559982