gpt4 book ai didi

Java画图程序。框架区域鼠标按下的问题

转载 作者:行者123 更新时间:2023-11-30 10:36:50 24 4
gpt4 key购买 nike

尝试通过在特定区域内单击来选择颜色时遇到问题。在该区域单击时,有时不会响应点击,并且选择其他颜色时会重复以前和当前的颜色。

@Override
public void mousePressed(MouseEvent e) {
/*
* Selecting color
*/
if(e.getX()>0 && e.getX()<(cwidth) && e.getY()>1 && e.getY()<panelHeight){
c=Color.BLACK;
System.out.println("BLACK");

}
if(e.getX()>(cwidth) && x1< (cwidth*2) && e.getY()>1 && e.getY()<panelHeight){
c=Color.RED;
System.out.println("RED");
}
if(e.getX()>(cwidth*2) && x1< (cwidth*3) && e.getY()>1 && e.getY()< panelHeight){
c=Color.GREEN;
System.out.println("GREEN");

}
if(e.getX()>(cwidth*3) && x1< (cwidth*4) && e.getY()>1 && e.getY()<panelHeight){
c=Color.BLUE;
System.out.println("BLUE");

}

我该如何解决这个问题?我转而使用类级别变量来计算单元格宽度以消除粗心错误。控制台中的调试颜色消息没有任何意义,为什么它在按下鼠标时不会切换到新颜色,而不是等待我双击或单击不同的颜色。

完整的 PaintPanel.java 源代码链接:

PaintPanel.java - http://pastebin.com/7pay4Paz

最佳答案

你需要使用if-else:

@Override
public void mouseClicked(MouseEvent e) {
/*
* Selecting color
*/
if(e.getX()>0 && e.getX()=<(cwidth)){
c=Color.BLACK;
System.out.println("BLACK");

}
else if(e.getX()>(cwidth) && x1=< (cwidth*2) ){
c=Color.RED;
System.out.println("RED");
}
else if(e.getX()>(cwidth*2) && x1=< (cwidth*3)){
c=Color.GREEN;
System.out.println("GREEN");

}
else if(e.getX()>(cwidth*3) && x1=< (cwidth*4)){
c=Color.BLUE;
System.out.println("BLUE");

}

这样,当其中一个条件为真时,程序将不会检查其余条件是否为真。

关于Java画图程序。框架区域鼠标按下的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40425148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com