gpt4 book ai didi

java - 如何捕获被打开的 JDialog 阻止的窗口上的鼠标单击事件

转载 作者:行者123 更新时间:2023-11-30 04:05:59 25 4
gpt4 key购买 nike

简单地说 - 我想要的是捕获鼠标点击被模态 JDialog 阻止的窗口。

这是一个例子:

public class BlockedFrameTest
{
public static void main ( final String[] args )
{
Toolkit.getDefaultToolkit ().addAWTEventListener ( new AWTEventListener ()
{
@Override
public void eventDispatched ( final AWTEvent event )
{
if ( event instanceof MouseEvent )
{
System.out.println ( event );
}
}
}, AWTEvent.MOUSE_EVENT_MASK );

final JFrame frame = new JFrame ( "Frame" );
frame.add ( new JLabel ( "Content" )
{
{
setBorder ( BorderFactory.createEmptyBorder ( 100, 100, 100, 100 ) );
}
} );
frame.pack ();
frame.setLocationRelativeTo ( null );
frame.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
frame.setVisible ( true );

final JDialog dialog = new JDialog ( frame, "Dialog" );
dialog.setModal ( true );
dialog.add ( new JLabel ( "Content" )
{
{
setBorder ( BorderFactory.createEmptyBorder ( 50, 50, 50, 50 ) );
}
} );
dialog.pack ();
dialog.setLocationRelativeTo ( frame );
dialog.setVisible ( true );
}
}

通过查看示例输出日志,您将看到打开 JDialog 时,来自 JFrame 的事件不会传递(甚至不会传递到示例中添加的全局 AWT 事件监听器中)。

所以我想知道 - 有什么方法可以捕获被阻止的 JFrame 上的点击吗?
或者至少捕获用户“触摸”被阻止的内容时的事件?

我需要这个的原因是为了在发生此类事件时使自定义装饰的 JDialog 闪烁。

最佳答案

也许这有帮助:

how to obtain mouse click coordinates outside my window in Java

这有点困难,因为您要离开 Swing 领域并进入 native GUI 领域。

关于java - 如何捕获被打开的 JDialog 阻止的窗口上的鼠标单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20702860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com