Java:使用If-Else语句为网格列着色
我一直在尝试将某些列设置为某些颜色,但没有正确的结果。我对其中的大部分感到有些困惑 我将感谢任何帮助 我试图实现的目标: 使用一系列if-else语句使第4列变为绿色,第5列变为蓝色,第6列变为红色,其余部分变为黄色 我的(不正确)代码:Java:使用If-Else语句为网格列着色,java,if-statement,colors,grid-layout,Java,If Statement,Colors,Grid Layout,我一直在尝试将某些列设置为某些颜色,但没有正确的结果。我对其中的大部分感到有些困惑 我将感谢任何帮助 我试图实现的目标: 使用一系列if-else语句使第4列变为绿色,第5列变为蓝色,第6列变为红色,其余部分变为黄色 我的(不正确)代码: import java.awt.*; 公共类IfGrid { 公共静态void main(字符串[]args) { DrawingPanel=新的DrawingPanel(400400); 面板.立根背景(颜色.蓝色); Graphics g=panel.ge
import java.awt.*;
公共类IfGrid
{
公共静态void main(字符串[]args)
{
DrawingPanel=新的DrawingPanel(400400);
面板.立根背景(颜色.蓝色);
Graphics g=panel.getGraphics();
int-sizeX=40;
int-sizeY=40;
对于(int x=0;x<10;x++)
{
对于(int y=0;y<10;y++)
{
int cornerX=x*sizeX;
int cornerY=y*sizeY;
if(x==4){//if语句从这里开始
g、 setColor(Color.green);}
如果(x==5){
g、 setColor(Color.blue);}
如果(x==6){
g、 setColor(Color.red);}
否则{
g、 setColor(Color.yellow);}
g、 fillRect(cornerX、cornerY、sizeX-1、sizeY-1);
g、 设置颜色(颜色为黑色);
g、 抽绳(“x=”+x,cornerX+10,cornerY+15);//文本位于其基线处
g、 抽绳(“y=”+y,cornerX+10,cornerY+33);//从拐角处的偏移不居中
}
}
}
}
它应该是什么样子:(我用油漆表示)
我得到的(错误):
您有4个案例需要考虑:
但是您的第三个
if
语句实现了if x==6红色,否则为黄色,因此,即使某列已被前一个if
设置为绿色或蓝色,它也将在此处重新设置为黄色。您有4种情况需要考虑:
但是您的第三个
if
语句实现了if x==6 red else-yellow,因此,即使某列已被先前的if
设置为绿色或蓝色,它也将在此处重新设置为黄色。您可以使用else if
来解决此问题:
if (x == 4) {
g.setColor(Color.green);
} else if (x == 5) {
g.setColor(Color.blue);
} else if (x == 6) {
g.setColor(Color.red);
} else {
g.setColor(Color.yellow);
}
在当前代码中,每次
x!=6
,导致该行变黄。如果要解决此问题,您可以使用else:
if (x == 4) {
g.setColor(Color.green);
} else if (x == 5) {
g.setColor(Color.blue);
} else if (x == 6) {
g.setColor(Color.red);
} else {
g.setColor(Color.yellow);
}
在当前代码中,每次x!=6
,导致行变为黄色。因此它检查条件是否为真,然后执行“else”?Correct。它检查x
是否为4、5或6,如果不是,则将其设置为黄色。因此,它检查条件是否为真,然后执行“else”?Correct。它检查x
是否为4、5或6,如果它们都不是,则将其设置为黄色。