我是编程新手,并尝试用java编写一个显示不同大小和颜色的椭圆的图形程序,但是,我无法让程序在小程序窗口中显示椭圆形。有没有人对我在这里出错的地方有任何建议/意见? 请参阅下面的绘画方法示例:
public void paint(Graphics g)
{
for(int i=0; i<n; i++)
{
x[i] = (int)(600* Math.random() +1);
y[i] = (int)(600* Math.random() +1);
}
int c= (int)(255*Math.random()); //random foreground color
int a= (int)(255*Math.random());
int t= (int)(255*Math.random());
Color f = new Color(c,a,t);//variables have been declared in init
g.setColor(f);
g.fillOval(rand(0, 600), rand(0, 600), r = rand(5, 100), r);
sleep(100);
cnt += 1;
if(cnt >= 500) clearScreen();
else update(g);
}
我修改了最近的一个学校项目(我们应该制作一个热气球),所以请原谅一些东西的命名:
import java.awt.*;
import javax.swing.*;
public class Balloon extends JComponent {
public static void main(String args[]){
JFrame frame = new JFrame("balloons");
frame.setSize(200,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Balloon balloon = new Balloon();
frame.setContentPane(balloon);
}
public void paint(Graphics g){
super.paint(g);
for(int i = 0; i<20; i++){
int c= (int)(255*random()); //random foreground color
int a= (int)(255*random());
int t= (int)(255*random());
g.setColor(new Color(c,a,t));
g.fillOval((int)(200*random()),(int)(200*random()),(int)(30*random()),(int)(30*random()));
}
}
public double random(){
return Math.random();
}
}
目前它相当小,所以你可能想改变一些变量......但是它按照您的要求进行操作。
就你哪里出错而言...看起来你有一个循环,将值放入两个数组中......但是我没有看到第二个数组穿过并绘制所有椭圆形......在我的代码中,我生成所有坐标、颜色,并一次打印出来。