【问题标题】:Java: MouseEvent on transparent JPanelJava:透明JPanel上的MouseEvent
【发布时间】:2011-09-24 05:53:51
【问题描述】:

我有一个LayeredPane 和两个JPanels,都在一个JFrame 中。两个JPanels 都设置为透明setOpaque(false)。但是,我想在(顶部,如果有区别的话)透明面板上捕获鼠标事件。这是可能的,还是我应该从底层的JFrame 做它? (从JFrame 捕获肯定会起作用;从透明框架中捕获事件更符合逻辑)。

【问题讨论】:

    标签: java swing transparency mouseevent jframe


    【解决方案1】:

    您可以在任何一个附加了 MouseListener 的 JPanel 上捕获鼠标事件,并且不受同样添加了 MouseListener 并且位于原始 JPanel 之上或之上的组件的阻碍。这看起来非常适合创建一个最简单的 GUI 的小型测试类,它没有 GUI 的花里胡哨,但它说明了您的问题和有希望的解决方案。

    另外,请注意,除了分散注意力之外,透明度根本不会起到任何作用。

    【讨论】:

    • “除了分散注意力之外,透明度根本不会起到任何作用” 嗯,这使得首先找到要单击的面板变得更加困难。 ;) IMO 大多数透明度增加了视觉效果,同时降低了可用性。
    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2012-07-07
    相关资源
    最近更新 更多