1

是否可以在 a 中放置一个子组件JButton并使其对鼠标事件的子集透明,以便:

  • 子组件接收MouseMotionEvents(因此它可以通过修改显示的图像来响应)
  • 单击仍然会压低JButton子组件的“后面”

如果您将子组件添加到按钮但未进行其他更改,则单击子组件占用的区域不会激活按钮。

我知道这可以通过创建一个扩展的新类来实现,JButton但我更喜欢使用已经编写好的子组件。

注意:这纯粹是出于美观的原因。子组件只会改变自己的外观。它不执行任何其他操作来响应点击。只有一个Action,由按钮以正常方式触发。

4

2 回答 2

1

是的,这是可能的,但可能有更好的方法来更改鼠标悬停时 JButton 的外观。您可以扩展一个 ButtonUI 来做到这一点。但是,如果您想将一个组件放在一个 JButton 上,您应该将其他鼠标事件(例如点击)传递给底层的 JButton。

于 2009-08-15T10:59:17.717 回答
0

JXLayer 正是您所需要的。查看https://jxlayer.dev.java.net/ 该项目站点有几篇关于 JXLayer 在许多不同用例中的使用的好文章。

于 2009-08-15T17:23:42.330 回答