java - 将子组件添加到 JButton

标签 java swing mouseevent jbutton

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

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

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

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

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

最佳答案

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

关于java - 将子组件添加到 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281612/

相关文章:

java - TreeMap 中的二分查找

java - 如何在 Swing 中单击时放置图像?

java - foreach循环java中的数组错误

c# - MouseEnter & MouseLeave 对象名

c# - 为什么没有 MouseMoveEvent——或者,如何为鼠标移动事件使用 AddHandler

java - 如何将 twitter v2 Kotlin 库添加到我的 Maven Java 代码中?

java - Java 中的 ASCII 字符集

java - 致命异常 : java. lang.OutOfMemoryError 使用 okhttp3 okio 下载文件

Java滚动条

javascript - 获取沿 x 轴的元素宽度的点击百分比