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*代码>。我去掉了那条线,一切都好了。你修改了你在这里写的代码吗?我只删除了导入行并尝试了一下,什么都没发生。所以我也试着换了包,但还是什么都没有。我现在不知所措。哇,没关系…我把它修好了我忘了编译我的更改…只是没有想清楚我删除了我的答案,然后考虑到添加到框架中的面板有其首选的大小设置,这在任何情况下都是毫无意义的,您应该允许框架的大小为其内容的首选大小,因为这将自动包括框架装饰的边框插入。。。