2

这是我的简单代码。我真的不知道如何将绘制的椭圆添加到JPanel. 我以前画过一些画,但我从来没有使用过构造函数,所以我不知道。

public class Buffer extends JPanel{
    public JFrame frame;
    public JPanel panel;

    public Buffer(){
        frame=new JFrame();
        panel=new JPanel();

        panel.setSize(500,500);
        panel.setBackground(Color.red);

        frame.setSize(500,500);
        frame.setVisible(true);
        frame.add(panel);
    }

    public void paintComponent(Graphics g){
        super.paintComponents(g);
        g.fillOval(20,20,20,20);
    }

    public static void main(String args[]){
        new Buffer();
    }
}
4

1 回答 1

2

您的代码的基本结构是错误的。Buffer 类不应创建框架。Buffer 类应该只用于绘画。代码应该是这样的:

public static void main(String args[])
{
    Buffer oval = new Buffer();
    oval.setBackground(Color.RED);

    JFrame frame=new JFrame();
    frame.add( oval );
    frame.setSize(500,500);
    frame.setVisible(true);
}

确保调用 super.paintComponent() (不带“s”)。您还应该覆盖getPreferredSize()设置自定义组件大小的方法。阅读有关自定义绘画的 Swing 教程以获取更多信息和更好的示例。

于 2013-07-19T19:00:33.777 回答