Это похоже на такую простую проблему, но почему-то я не смог ответить Google. Учебники, похоже, просматривают начало, и я не вижу, как их программа отличается от моей. Все, что я пытаюсь сделать, это создать JPanel и использовать класс Graphics для рисования на нем, при запуске программы.Рисование графики при запуске программы; PaintComponent никогда не назывался
Я создал супер упрощенную версию программы, которая также не работает:
public class Thing
{
public static void main(String[] args)
{
JFrame mainFrame = new JFrame("Test");
mainFrame.setResizable(false);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
OtherThing panel = new OtherThing();
mainFrame.getContentPane().add(panel);
mainFrame.pack();
mainFrame.setVisible(true);
}
}
public class OtherThing extends JPanel
{
public OtherThing()
{
setBackground(Color.black);
setPreferredSize(new Dimension(400,400));
repaint();
}
public void PaintComponent(Graphics g)
{
super.paintComponents(g);
setBackground(Color.red);
setForeground(Color.red);
System.out.println("start");
g.drawOval(0,0,50,50);
g.drawLine(0,0 , 100, 100);
g.drawString("This is my custom Panel!",10,20);
System.out.println("After");
}
}
В Sytem.out.println-х никогда не распечатывается. PaintComponent никогда не вызывается. В некоторых учебниках, которые я смотрел на них, они звучали так же просто, как перекраска, называет paintcomponent, но в моей программе paintcomponent никогда не вызывается.
Я просто хочу, чтобы графика рисовала при запуске.
Изменения 'общественного недействительного PaintComponent (график г)' в '@Override общественного недействительного PaintComponent (Graphics г)' для сообщения полезного компилятора .. –
я запутался ... он сказал мне, что нечего переоценивать? У JPanel нет PaintComponent? – Khaines0625