我在JDesktopPane中有多个JInternalFrame。所有JInternalFrame都是未修饰的,我使用鼠标监听器管理拖动。但是,我希望内部框架不重叠,即一个内部框架不应与另一个相交。
直到现在,我可以使用getBounds()。intersects()方法检查两个内部帧是否重叠。但是,我对下一步该做什么一无所知。
我试过谷歌,但得不到满意的答案。请提出解决方案。
谢谢!
答案 0 :(得分:0)
两个答案:
e.g。
JDesktopPane desktopPane = new JDesktopPane();
contentPane.add(desktopPane);
JInternalFrame internalFrame = new JInternalFrame("New JInternalFrame");
desktopPane.add(internalFrame);
desktopPane.setComponentZOrder(internalFrame, 0);
将setComponentZOrder函数放在JInternalFrame组件侦听器中。
internalFrame.addComponentListener(new ComponentAdapter() {
@Override
public void componentMoved(ComponentEvent e) {
desktopPane.setComponentZOrder(internalFrame, 0);
}
});
2。如果您希望它们严格不重叠,请将它们放在单独的jframe中。