簡體   English   中英

如何使JDesktopPane中的JInternalFrame不重疊

[英]How to make JInternalFrame(s) in JDesktopPane non-overlapping

我在JDesktopPane中有多個JInternalFrame。 所有JInternalFrame都未修飾,我使用鼠標偵聽器管理拖動。 但是,我希望內部框架不重疊,即一個內部框架不應與另一內部框架相交。

到現在為止,我可以使用getBounds()。intersects()方法檢查兩個內部框架是否重疊。 但是,我不知道下一步該怎么做。

我嘗試了Google,但沒有得到滿意的答案。 請提出解決方案。

謝謝 !

兩個答案:

  1. 如果要設置哪個內部框架與另一個內部框架重疊,請使用setComponentZOrder(Component comp,int index)函數。

例如

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中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM