将子组件添加到JButton

时间:2009-08-15 10:36:15

标签: java swing mouseevent jbutton

是否可以将子组件放在JButton内,并使其对鼠标事件的子集透明,以便:

  • 子组件接收MouseMotionEvent s(因此可以通过修改显示的图像进行响应)
  • 点击仍会按下“子组件
  • 后面的JButton

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

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

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

2 个答案:

答案 0 :(得分:1)

是的,这是可能的,但可能有更好的方法来改变鼠标悬停的JButton的外观。你可以扩展一个ButtonUI来做到这一点。但是,如果要将组件放在JButton上,则应将其他鼠标事件(例如单击)传递给基础JButton。

答案 1 :(得分:0)

JXLayer就是你需要的东西。查看https://jxlayer.dev.java.net/ 项目网站上有几篇关于JXLayer用于许多不同用例的好文章。