Windows10上的java8。我有一个可调整大小的JDialog。我尝试了下面的代码,看看当鼠标光标在JDialog的边缘改变形状并准备好按下并拖动以调整JDialog大小时,是否可以捕获JDialog& mouseReleased事件。
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent event) {
if (event instanceof MouseEvent) {
MouseEvent me = (MouseEvent)event;
System.out.println("mouse event captured");
}
}, AWTEvent.MOUSE_EVENT_MASK);
但是,在按下/拖动/释放鼠标以驻留JDialog的过程中,上述代码无法捕获任何鼠标事件。但是,如果鼠标指针位于JDialog的边界内,它可以捕获所有鼠标事件。
在使用鼠标调整JDialog大小的过程中,如何捕获mousePressed/mouseDragged/mouseReleased事件?
发布于 2021-03-28 18:53:52
当JFrame/JDialog调整大小时,您似乎想要执行代码,然后只想执行JFrame/JDialog.addComponentListener方法。当窗口调整大小时,将调用componentResized。
如果您想要区分代码更改大小或拖动更改大小,只需使用布尔值:
resizingByCode = true;
resize();
resizingByCode = false;
在componentResized中,检查这个布尔值。
https://stackoverflow.com/questions/66662621
复制相似问题