[英]Java: Drawing with if-else statements
我在獲取if-else語句來為程序繪制正確的顏色時遇到麻煩。 我的印象是,if語句未使用else語句和“ setColor”正確組織,我為如何使黑色呈現為黃色而感到困惑。 描述它的最好方法是展示它。
我會很感激任何幫助!
我的輸出(錯誤):
目標輸出(右):
我的代碼:
import java.awt.*;
public class IfGridEx3 {
public static void main(String[] args) {
DrawingPanel panel = new DrawingPanel(400, 400);
panel.setBackground(Color.blue);
Graphics g = panel.getGraphics();
int sizeX = 40;
int sizeY = 40;
for (int x = 0; x < 10; x++) {
for (int y = 0; y < 10; y++) {
int cornerX = x*sizeX;
int cornerY = y*sizeY;
if (x > 1)
if (x < 8)
if (y > 1)
if (y < 8)
g.setColor(Color.green);
else
g.setColor(Color.yellow);
g.fillRect(cornerX+1, cornerY+1, sizeX-2, sizeY-2);
g.setColor(Color.black);
g.drawString("x="+x, cornerX+10, cornerY+15); // text is positioned at its baseline
g.drawString("y="+y, cornerX+10, cornerY+33); // offsets from the corner do centering
}
}
}
}
您的else
僅基於last if
結果,因此g.setColor(Color.yellow);
僅在所有條件下都將被調用
if (x > 1)
if (x < 8)
if (y > 1)
將真(否則在最后一個條件if
甚至不會進行測試),
和條件的結果評估從if
if (y < 8)
將是false
。 這意味着,如果前三個條件為false
,則else
將不會被調用,這就是為什么您看到某些區域未設置的原因。
要解決此問題,您可以為中心區域創建單個條件
if (x > 1 && x < 8 && y > 1 && y < 8){
g.setColor(Color.green);
} else {
g.setColor(Color.yellow);
}
嘗試這個 :
if((x>=2 && x<=7) && (y>=2 &&y<=7))
//fill color green
else
//fill yello color
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.