我有一个针对我之前发布的问题的后续问题。 Link
我不确定发布这些内容的正确礼仪,所以如果这是错误的,请原谅我。
我开始学习数组,并试图让我的同心圆现在重复 10 次(10 个不同的圆,都有 6 个环)。
这是我到目前为止的代码:
public class E4 {
public static void main(String[] args)
throws FileNotFoundException {
Scanner console = new Scanner(new File("Practice27.txt"));
int panelX = 400, panelY = 400;
DrawingPanel panel = new DrawingPanel(panelX, panelY);
panel.setBackground(Color.WHITE);
Graphics g = panel.getGraphics();
Random r = new Random();
int xCenter=r.nextInt(400);
int yCenter=r.nextInt(400);
int [][] diameters = new int[6][10];
for(int i=0;i<diameters.length;i++){
for(int j=0;j<diameters.length;j++){
diameters[i][j]=console.nextInt();
g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
g.fillOval(xCenter-diameters[i][j]/2, yCenter-diameters[i][j]/2, diameters[i][j], diameters[i][j]);
}
}
}
}
到目前为止,我尝试过创建一个嵌套的 for 循环,该循环将重复我原来的 for 循环 10 次,但这不起作用。然后我尝试使用多维数组(我不太确定它们是如何工作的,所以我的语法可能完全错误)
我觉得解决方案就是我最初尝试过的(嵌套循环):
for(int i=0;i<diameters.length;i++){
for(int j=0;j<=10;j++){
diameters[i]=console.nextInt();
g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
g.fillOval(xCenter-diameters[i]/2, yCenter-diameters[i]/2, diameters[i], diameters[i]);
但这只给我留下了一个同心圆。至少我走在正确的道路上吗?再次感谢!
最佳答案
实际上你需要这样的东西。您只需要一组直径,并为每个直径创建 10 个圆
int [] diameters = new int[6];
for(int i=0;i<diameters.length;i++){
diameters[i]=console.nextInt();
for(int j=0;j<30;j+=3){
g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
g.fillOval(xCenter-diameters[i]/2-j, yCenter-diameters[i]/2-j, diameters[i]+j, diameters[i]+j);
}
}
关于java - 同心圆和阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29788386/