Java 100个随机圈

Java 100个随机圈,java,swing,jpanel,Java,Swing,Jpanel,在我编译了之前的代码之后,它工作了,但是现在我无法将圆的周长更改为圆内的不同颜色。任何建议 public void paintComponent(Graphics g) { super.paintComponent(g); Dimension d = getSize(); for(int i = 0; i < 100; ++i) { C

在我编译了之前的代码之后,它工作了,但是现在我无法将圆的周长更改为圆内的不同颜色。任何建议

    public void paintComponent(Graphics g) 
    {
        super.paintComponent(g);
        Dimension d = getSize();
        for(int i = 0; i < 100; ++i) 
        {                        
            Color color = new Color(generator.nextInt(255), generator.nextInt(255), generator.nextInt(255));
            g.setColor(color);

            int circleSize = generator.nextInt(d.width / 4);
            int x = generator.nextInt(d.width - circleSize);
            int y = generator.nextInt(d.height - circleSize);
            g.fillOval(x, y, circleSize, circleSize);

            color = new Color(generator.nextInt(255), generator.nextInt(255), generator.nextInt(255));
            g.setColor(color);              
            g.drawArc(x, y, circleSize, circleSize, 0, 360);
        }

    }
}
公共组件(图形g)
{
超级组件(g);
维度d=getSize();
对于(int i=0;i<100;++i)
{                        
颜色=新颜色(generator.nextInt(255)、generator.nextInt(255)、generator.nextInt(255));
g、 设置颜色(颜色);
int circleSize=生成器.nextInt(d.width/4);
int x=生成器.nextInt(d.宽度-圆圈大小);
int y=发电机下一个点(d.高度-圆形尺寸);
g、 圆形(x,y,圆圈大小,圆圈大小);
颜色=新颜色(generator.nextInt(255)、generator.nextInt(255)、generator.nextInt(255));
g、 设置颜色(颜色);
g、 drawArc(x,y,圆圈大小,圆圈大小,0,360);
}
}
}

只需添加
frame.setPreferredSize(新尺寸(700500))包装框架之前。这两种方法应结合使用。此外,将
JPanel
的添加移动到设置大小后,这将提高代码可读性,如果您考虑语句的顺序,这将更有意义

public static void main (String[] args)
{
JFrame frame = new JFrame ("CircleFrame");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

CircleFramePanel panel = new CircleFramePanel();

frame.setPreferredSize(new Dimension (700,500)); // add it here

frame.pack();

frame.getContentPane().add(panel);  

frame.setVisible(true);
} 

如果我有一个特定的尺寸,里面什么都没有,我会避免使用这个包。它看起来在这里应该运行。合适的尺寸,大量的圆圈和黑色背景。唯一没有编译的是第二次导入,
javax.swing.JPanel*。我去掉了那条线,一切都好了。你修改了你在这里写的代码吗?我只删除了导入行并尝试了一下,什么都没发生。所以我也试着换了包,但还是什么都没有。我现在不知所措。哇,没关系…我把它修好了我忘了编译我的更改…只是没有想清楚我删除了我的答案,然后考虑到添加到框架中的面板有其首选的大小设置,这在任何情况下都是毫无意义的,您应该允许框架的大小为其内容的首选大小,因为这将自动包括框架装饰的边框插入。。。