У меня есть эти классы;класс, не наследующий от класса, который распространяется на JComponent
public class Car extends JComponent {
}
public class Mazda extends Car {
}
public class Subaru extends Car {
}
В моем классе автомобиля я переопределить компонент метод Paint
@Override
public void paintComponent(Graphics g) {
//why my planets aren't painted by this method
if (this instanceof Mazda) {
g.fillOval(0, 0, this.getWidth(), this.getHeight());
System.out.println(this.getClass());
}
if (this instanceof Subaru) {
g.setColor(Color.blue);
g.fillOval(0, 0, this.getWidth(), this.getHeight());
System.out.println(this.getClass());
}
}
Он рисует экземпляр Мазды просто отлично, но код для экземпляров Субару просто никогда не вызывается. Кажется, что subaru не наследует Jcomponent от Car? или почему не называют painComponent? Новое на Java, поэтому я, вероятно, отсутствует что-то основное
Почему бы вам не переопределить 'paintComponent' в' Mazda' и 'Subaru'? –
Я пробовал, но только код Mazda работал, а не в Subaru, я также пытался сделать его абстрактным в автомобиле, но не повезло. –
Как и где добавляются экземпляры? –