gpt4 book ai didi

java - 确定悬停在哪个形状上 - Java

转载 作者:行者123 更新时间:2023-12-01 14:24:24 27 4
gpt4 key购买 nike

所以我在 JPanel 上绘制了 3 个用作按钮的矩形,我想做的是当鼠标悬停在其中一个矩形上时,Jpanel 将重新绘制,并将仅该矩形的颜色更改为红色的。

我能想到的唯一方法是使用 3 个单独的变量来确定鼠标是否位于每个组件上。然后在 repaint 方法中会有代码,如果 rect1hover 为 true,则使用 g.setColor 绘制为红色。

@Override
public void mouseMoved(MouseEvent e) {
if(rect1.contains(e.getX(), e.getY())){
rect1hover = true;
}
}

但这看起来效率很低。有更好的方法吗?

最佳答案

当然。将绘制的矩形放入 List 中。然后你就可以编写这段代码了。

@Override
public void mouseMoved(MouseEvent e) {
for (DrawnRectangle r : rectangles) {
if (r.contains(e.getX(), e.getY())){
r.setHoverBackground();
}
}
}

您必须使用 setHoverBackground 方法创建一个 DrawnRectangle 类。

关于java - 确定悬停在哪个形状上 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282355/

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