如何通过鼠标悬停来改变颜色

时间:2015-11-06 18:40:55

标签: java swing user-interface

我想设置一个圆圈网格(不重叠),这样当鼠标指针悬停在其中一个圆圈上时,该圆圈就会改变颜色。我已经进行了实验,到目前为止有两种选择:

  1. 使用容器,例如JPanel的。使用MouseMotionListener.mouseMoved(MouseEvent e)始终获取鼠标指针的x和y坐标。然后,如果坐标位于其中一个圆圈内,请使用repaint()重新绘制整个容器。

  2. 将每个圆圈设置为容器。使用MouseListener.mouseEntered(MouseEvent e)检测鼠标指针何时在圆上移动。然后仅重绘该容器。

  3. #2是最好的方法吗?如果是这样,我该如何设置圆形容器?有没有比上述任何一种更好的方法?

1 个答案:

答案 0 :(得分:2)

  

如果是这样,我该如何设置圆形容器?

查看Playing With Shapes

您可以使用ShapeComponent创建一个与组件一样的圆圈。因此,您可以像使用任何其他Swing组件一样构建网格。