循环中的字符串循环

时间:2014-06-15 14:43:53

标签: java loops

我试图在矩形内部制作一个有大量矩形的框架。我希望里面的人有不同的颜色,所以我试图用不同的坐标和颜色制作一个for循环。但是我发现搜索的字符串循环在循环中并不能很好地工作。它只用一种颜色打印所有坐标(如:

g2.setColor(Color.CYAN);g.drawRect(247, 197, 50, 50);
g2.setColor(Color.CYAN);g.drawRect(244, 194, 49, 49);
g2.setColor(Color.CYAN);g.drawRect(241, 191, 48, 48);
g2.setColor(Color.RED);g.drawRect(247, 197, 50, 50);
g2.setColor(Color.RED);g.drawRect(244, 194, 49, 49);
g2.setColor(Color.RED);g.drawRect(241, 191, 48, 48);

) ,然后是坐标等的下一个颜色,但我希望它在一行中(如:

g2.setColor(Color.CYAN);g.drawRect(247, 197, 50, 50);
g2.setColor(Color.RED);g.drawRect(244, 194, 49, 49);
g2.setColor(Color.BLUE);g.drawRect(241, 191, 48, 48);
g2.setColor(Color.GREEN);g.drawRect(238, 188, 47, 47);
g2.setColor(Color.PINK);g.drawRect(235, 185, 46, 46);
g2.setColor(Color.MAGENTA);g.drawRect(232, 182, 45, 45);

我已经创建了这段代码,但我只是不明白什么是错的?!

 package src;

 import java.awt.Color;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
 import javax.swing.JFrame;
 import javax.swing.JPanel;


  @SuppressWarnings("serial")
  public class Nr1 extends JPanel {

JFrame frame = new JFrame();

public static void main(String[] args) {
    // TODO Auto-generated method stub

new Nr1();


}
public Nr1(){

    frame.setVisible(true);
    frame.setBackground(Color.gray);
    frame.setForeground(Color.pink);

    frame.setSize(1845, 800);
    frame.setResizable(false);

       int i;   
       int y = 250;
       int z = 200;
    String [] names ={"CYAN", "PINK", "MAGENTA", "YELLOW", "GREEN", "BLUE", "RED"};
    for( String name : names ) {
       for (i=50;i > 0;i--){ 

           y = y -3;
           z = z -3;

           System.out.print("g2.setColor(Color." + name + ");");
           System.out.print("g.drawRect(" + y + ", " + z + ", " + i +", " + i + ");\n");
        }}

 java.awt.Container contentPane = frame.getContentPane();
        contentPane.add(new RörandeMojäng3());
}
 }
  @SuppressWarnings("serial")
  class RörandeMojäng3 extends JPanel {

public void paint (Graphics g) {
    Graphics2D g2 = (Graphics2D) g;


    g2.setColor(Color.MAGENTA);
    g.drawRect(200, 200, 50, 50);
    g2.setColor(Color.RED);
    g.drawRect(201, 201, 48, 48);



 }

 }

3 个答案:

答案 0 :(得分:0)

不会执行通过System.out.print打印的代码。

使用颜色数组而不是字符串数组。

答案 1 :(得分:0)

将颜色存储在Color类型的数组中,如下所示 Color[] colors = { Color.RED, Color.BLUE, Color.GREEN, Color.BLACK };

System.out.print() 写入控制台而不是代码。

答案 2 :(得分:0)

我认为你必须换行

for( String name : names ) {
for (i=50;i > 0;i--){

for (i=50;i > 0;i--){  
for( String name : names ) {