我试图在矩形内部制作一个有大量矩形的框架。我希望里面的人有不同的颜色,所以我试图用不同的坐标和颜色制作一个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);
}
}
答案 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 ) {