Java(Swing) - 一次拖动两个窗口

时间:2009-04-09 05:10:04

标签: java swing drag

如何让一个窗口与另一个窗口移动?也就是说,当拖动JFrame时,我想要一个JDialog来跟随JFrame。如果JFrame移动(+ 5,+ 20),则JDialog需要移动相同的内容。

我尝试过使用ComponentListeners,但我只接收块中的拖动事件,导致JDialog窗口在拖动主JFrame时跳跃。我尝试过使用MouseListeners,但我无法弄清楚如何检测JFrame实际帧上的事件。

3 个答案:

答案 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)与其右侧所有者之间的空格。