Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:使用If-Else语句为网格列着色_Java_If Statement_Colors_Grid Layout - Fatal编程技术网

Java:使用If-Else语句为网格列着色

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

我一直在尝试将某些列设置为某些颜色,但没有正确的结果。我对其中的大部分感到有些困惑

我将感谢任何帮助

我试图实现的目标:

使用一系列if-else语句使第4列变为绿色,第5列变为蓝色,第6列变为红色,其余部分变为黄色

我的(不正确)代码:

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个案例需要考虑:

  • x==4,绿色
  • x==5,蓝色
  • x==6,红色
  • 还有别的吗,黄色的

  • 但是您的第三个
    if
    语句实现了if x==6红色,否则为黄色,因此,即使某列已被前一个
    if
    设置为绿色或蓝色,它也将在此处重新设置为黄色。

    您有4种情况需要考虑:

  • x==4,绿色
  • x==5,蓝色
  • x==6,红色
  • 还有别的吗,黄色的

  • 但是您的第三个
    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,如果它们都不是,则将其设置为黄色。