Java 正在尝试获取日历中框的选择

Java 正在尝试获取日历中框的选择,java,calendar,Java,Calendar,我试图通过单击一个框并使其高亮显示来结束我的日历。我很难做到这一点,没有相当数量的线。如果你能帮忙,那就太棒了!提前谢谢 下面是我用来突出显示所选框的代码: if (x < 150 && x > 50){ g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f)); g2d.setColor(Color.YELLO

我试图通过单击一个框并使其高亮显示来结束我的日历。我很难做到这一点,没有相当数量的线。如果你能帮忙,那就太棒了!提前谢谢

下面是我用来突出显示所选框的代码:

if (x < 150 && x > 50){
                g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
                g2d.setColor(Color.YELLOW);
                g2d.fillRect(50, 50, 100, 100);
            }else if (x < 250 && x > 150){
                g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
                g2d.setColor(Color.YELLOW);
                g2d.fillRect(150, 50, 100, 100);
            }else if (x < 350 && x > 250){
                g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
                g2d.setColor(Color.YELLOW);
                g2d.fillRect(250, 50, 100, 100);
            }else if (x < 450 && x > 350){
                g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
                g2d.setColor(Color.YELLOW);
                g2d.fillRect(350, 50, 100, 100);
            }else if (x < 550 && x > 450){
                g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
                g2d.setColor(Color.YELLOW);
                g2d.fillRect(450, 50, 100, 100);
            }else if (x < 650 && x > 550){
                g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
                g2d.setColor(Color.YELLOW);
                g2d.fillRect(550, 50, 100, 100);
            }else if (x < 750 && x > 650){
                g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
                g2d.setColor(Color.YELLOW);
                g2d.fillRect(650, 50, 100, 100);
            }
if(x<150&&x>50){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(50,50,100,100);
}否则如果(x<250&&x>150){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(150,50100100);
}否则如果(x<350&&x>250){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(250,50,100,100);
}否则如果(x<450&&x>350){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(350,50,100,100);
}否则如果(x<550&&x>450){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(450,50100100);
}否则如果(x<650&&x>550){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(550,50100100);
}否则如果(x<750&&x>650){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(650,50,100,100);
}

由于要将每个字段设置为相同的颜色,因此可以在循环之前设置一次颜色,而不是在每个if/if-else块中。而不是

if (x < 150 && x > 50){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.setColor(Color.YELLOW);
            g2d.fillRect(50, 50, 100, 100);
        }else if (x < 250 && x > 150){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.setColor(Color.YELLOW);
            g2d.fillRect(150, 50, 100, 100);
        }else if (x < 350 && x > 250){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.setColor(Color.YELLOW);
            g2d.fillRect(250, 50, 100, 100);
        }else if (x < 450 && x > 350){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.setColor(Color.YELLOW);
            g2d.fillRect(350, 50, 100, 100);
        }else if (x < 550 && x > 450){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.setColor(Color.YELLOW);
            g2d.fillRect(450, 50, 100, 100);
        }else if (x < 650 && x > 550){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.setColor(Color.YELLOW);
            g2d.fillRect(550, 50, 100, 100);
        }else if (x < 750 && x > 650){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.setColor(Color.YELLOW);
            g2d.fillRect(650, 50, 100, 100);
        }
if(x<150&&x>50){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(50,50,100,100);
}否则如果(x<250&&x>150){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(150,50100100);
}否则如果(x<350&&x>250){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(250,50,100,100);
}否则如果(x<450&&x>350){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(350,50,100,100);
}否则如果(x<550&&x>450){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(450,50100100);
}否则如果(x<650&&x>550){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(550,50100100);
}否则如果(x<750&&x>650){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.setColor(Color.YELLOW);
g2d.fillRect(650,50,100,100);
}
您只需按以下方式设置一次颜色即可:

g2d.setColor(Color.YELLOW);
if (x < 150 && x > 50){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.fillRect(50, 50, 100, 100);
        }else if (x < 250 && x > 150){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.fillRect(150, 50, 100, 100);
        }else if (x < 350 && x > 250){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.fillRect(250, 50, 100, 100);
        }else if (x < 450 && x > 350){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.fillRect(350, 50, 100, 100);
        }else if (x < 550 && x > 450){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.fillRect(450, 50, 100, 100);
        }else if (x < 650 && x > 550){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.fillRect(550, 50, 100, 100);
        }else if (x < 750 && x > 650){
            g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
            g2d.fillRect(650, 50, 100, 100);
        }
g2d.setColor(Color.YELLOW);
如果(x<150&&x>50){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.fillRect(50,50,100,100);
}否则如果(x<250&&x>150){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.fillRect(150,50100100);
}否则如果(x<350&&x>250){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.fillRect(250,50,100,100);
}否则如果(x<450&&x>350){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.fillRect(350,50,100,100);
}否则如果(x<550&&x>450){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.fillRect(450,50100100);
}否则如果(x<650&&x>550){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.fillRect(550,50100100);
}否则如果(x<750&&x>650){
setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.6f));
g2d.fillRect(650,50,100,100);
}

是的,这很有道理,但我想知道是否有更简单的方法来找出我选择的正方形。有什么想法吗?