程序启动时绘制图形;PaintComponent从未调用过



这似乎是一个简单的问题,但不知怎么的,我一直无法在谷歌上找到答案。教程似乎从头开始,我看不出他们的程序和我的有什么不同。我所要做的就是创建一个JPanel,并在程序启动时使用Graphics类在上面绘制东西。

我创建了一个超级简化版本的程序,但也不起作用:

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");
    }
}

系统输出打印的永远不会打印出来。PaintComponent从未被调用。在我看过的一些教程中,他们让它听起来就像重新绘制调用paintcomponent一样简单,但在我的程序中,paintcomponent从未被调用过。

我只是想在启动时绘制图形。

Java是密钥敏感的。

public void PaintComponent(Graphics g)

必须是

public void paintComponent(Graphics g)

相关内容

  • 没有找到相关文章

最新更新