对于我先前发布的问题,我有一个后续问题。 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/

10-09 01:39