如何在JFrame或任何JComponent上绘图?

时间:2014-02-23 20:41:00

标签: java swing jframe paint paintcomponent

我想在我的JFrame上使用paint()绘制一些东西。我不能让它显示出来。为什么呢?

claass DrawOn extends JFrame{
   public static void main(String args[]){
     new DrawOn();
   } 

   public DrawOn(){
     setVisible(true);
     pack();
    }

   paint(Graphics g){
     g.drawOval(10,10,100,100);
   }
}

1 个答案:

答案 0 :(得分:0)

您应该使用JPanel

进行绘制
JPanel panel = new JPanel()
{
    @Override
    protected void paintComponent(Graphics g)
    {
        // TODO Auto-generated method stub
        super.paintComponent(g);
        g.drawOval(10, 10, 100, 100);
    }
};

不要忘记将JPanel添加到JFrame

add(panel);

<强>代码:

public DrawOn()
{

    JPanel panel = new JPanel()
    {
        @Override
        protected void paintComponent(Graphics g)
        {
            // TODO Auto-generated method stub
            super.paintComponent(g);
            g.drawOval(10, 10, 100, 100);
        }
    };

    add(panel);
    setPreferredSize(new Dimension(200, 200));
    setVisible(true);
    pack();
}

注意:您可以创建扩展 JPanel的类,而不是使用匿名类,以便您的代码更清晰。