如何让一个窗口与另一个窗口移动?也就是说,当拖动JFrame时,我想要一个JDialog来跟随JFrame。如果JFrame移动(+ 5,+ 20),则JDialog需要移动相同的内容。
我尝试过使用ComponentListeners,但我只接收块中的拖动事件,导致JDialog窗口在拖动主JFrame时跳跃。我尝试过使用MouseListeners,但我无法弄清楚如何检测JFrame实际帧上的事件。
答案 0 :(得分:1)
尝试使用ComponentListener.componentMoved事件,而不是监视JFrame上的拖动事件。
答案 1 :(得分:1)
这里的AFAIK在AWT中没有移动多个窗口。为了在相似的时间调用动作,我想你希望JFrame
装饰是PL& F渲染的。放入PL& F特定的黑客来自己动作,几乎同时移动两个窗口。您可能仍然遇到暴露窗口位以阻止它们导致性能下降的问题。
答案 2 :(得分:0)
组件侦听器方法非常有效。 我做了这样的事情:
Point p = this.getLocation();
p.x += this.getWidth() + 10;
this.getOwner().setLocation(p);
其中'10'是当前窗口(JDialog)与其右侧所有者之间的空格。