【问题标题】:Adding oval shape to JPanel将椭圆形添加到 JPanel
【发布时间】:2013-07-20 03:16:27
【问题描述】:

这是我的简单代码。我真的不知道如何将绘制的椭圆添加到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();
    }
}

【问题讨论】:

    标签: java swing user-interface jpanel


    【解决方案1】:

    您的代码的基本结构是错误的。 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() 方法来设置自定义组件的大小。阅读Custom Painting 上的 Swing 教程以获取更多信息和更好的示例。

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      相关资源
      最近更新 更多