Когда я запускаю этот код, PaintComponent никогда не вызывается, потому что «раскрашенное» сообщение никогда не печатается, и я не знаю почему? может ли кто-нибудь помочь?PaintComponent не вызывается с JPanel
public class DisplayManager extends JPanel {
public static final int WIDTH = 700, HEIGHT = 900;
public Bottle bottle1 = new Bottle("res/bottleimage.png");
public Slider slider1 = new Slider();
public void initDisplay()
{
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(new Dimension(WIDTH, HEIGHT));
frame.add(panel);
frame.setVisible(true);
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
bottle1.imageIcon.paintIcon(this, g, 50, 50);
System.out.println("painted");
}
}
Если ваш 'DisplayManager' должен быть' JPanel', вы должны добавить 'DisplayManager' в свой' Frame', а не новый 'JPanel'. 'frame.add (this)' вместо 'frame.add (panel)' –
спасибо, что это сработало – PDPIG
@PDPIG. Это только половина решения. – camickr