gpt4 book ai didi

java - 使用其他 JInternalFrame 内的按钮将 JInternalFrame 添加到 JDesktopPane

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:29:50 24 4
gpt4 key购买 nike

我从 https://stackoverflow.com/a/6868039/2240900 得到的这段代码

how to add the internal2 to desktoppane1 using a button placed somewhere in internal1.

在添加到您的按钮的 ActionListener 中,您可以使用如下代码来获取对桌面 Pane 的引用:

Container container = SwingUtilities.getAncestorOfClass(JDesktopPane.class, (Component)event.getSource());

if (container != null)
{
JDesktopPane desktop = (JDesktopPane)container;
JInternalFrame frame = new JInternalFrame(...);
desktop.add( frame );
}

我的问题是如果按钮位于另一个 JInternalFrame 中,如何添加另一个 JInternalFrame?例如:使用放置在 internal2/internal3/internalX 中某处的按钮将 internalX 添加到 desktoppane1,其中每个内部都是使用 internalX 内的按钮创建的,而不是使用菜单栏。

任何帮助将不胜感激。谢谢。

最佳答案

无意中发现可以使用JInternalFrame的一个方法getDesktopPane()。如 javadoc 中所述:

getDesktopPane

public JDesktopPane getDesktopPane()

Convenience method that searches the ancestor hierarchy for a JDesktop instance. If JInternalFrame finds none, the desktopIcon tree is searched.

Returns:
the JDesktopPane this internal frame belongs to, or null if none is found

所以我们可以使用如下命令:

JDesktopPane desktopPane = internalFrame.getDesktopPane();
desktopPane.add(internalX);

或者如果类扩展了 JInternalFrame,只需使用

JDesktopPane desktopPane = this.getDesktopPane();
desktoppane.add(internalX);

让 JDesktopPane 在嵌套的 JInternalFrame 中添加另一个 JInternalFrame。

关于java - 使用其他 JInternalFrame 内的按钮将 JInternalFrame 添加到 JDesktopPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15791032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com