【问题标题】:Can I add JInternalFrames to a JPanel?我可以将 JInternalFrames 添加到 JPanel 吗?
【发布时间】:2014-10-04 16:13:28
【问题描述】:

似乎 JInternalFrames 只能添加到 JDesktopPane,您必须将 JFrame 的内容窗格设置为该 JDesktopPane。比如:

JFrame frame = new JFrame();
JDesktopPane desktopPane = new JDesktopPane();
JInternalFrame internalFrame = new JInternalFrame();

desktopPane.add(internalFrame);
frame.setContentPane(desktopPane);

问题是 JInternalFrames 可以移动到我添加到 JFrame 的任何东西上,比如 JPanels。

有没有办法让我将 JInternalFrames/JDesktopPane 添加到 JPanel 之类的其他东西上?这样我就可以将 JInternalFrames 限制在该 JPanel 内。如果这不可能,那我还有什么其他选择?

【问题讨论】:

  • JDesktopPane 是一个 JComponent。 AFAIK,您可以将它作为任何其他 JComponent 添加到 JFrame 或 JPanel 中。我没有在文档中看到任何说明 JDesktopPane 必须设置为 JFrame 的内容窗格的内容。
  • 您可以通过此链接尝试解决方案:coderanch.com/t/342586/GUI/java/JinternalFrame-moveable
  • 或者这个example

标签: java swing


【解决方案1】:

您可以将任何对象添加到扩展 JComponent 的 JPanel。例如:

JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 300, 300);
window.setVisible(true);
window.setSize(600, 400);

JDesktopPane desktopPane = new JDesktopPane();
JInternalFrame internalFrame = new JInternalFrame();        
JPanel mainPanel = new JPanel();
mainPanel.add(desktopPane);
mainPanel.add(internalFrame);
window.add(mainPanel);

希望有帮助!

【讨论】:

    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2014-02-07
    • 2018-07-23
    • 2019-11-07
    • 2012-11-15
    • 2021-02-25
    相关资源
    最近更新 更多