查看没有JDesktopPanes的JInternalFrames

时间:2013-11-18 06:39:00

标签: java swing jinternalframe

我们知道JInternalFrame无法运行..我们必须将其设置为JDesktopPane 但是我从我的一个朋友那里听说JInternalFrame可以运行。 那可能吗..? 主方法有没有代码......?

1 个答案:

答案 0 :(得分:1)

当然,“JInternalFrame无法运行”;他们没有腿。但如果你声称他们不能在没有JDesktopPane的情况下使用,那么你从哪里获得“知识”?你为什么不亲自尝试?它只需不到五分钟:

import javax.swing.*;

public class IFrames
{
  public static void main(String[] args)
  {
    try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }
    catch(Exception ex){}
    JFrame f=new JFrame();
    f.setContentPane(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
      createFrame("Left"), createFrame("right") ));
    f.setSize(300, 300);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }

  private static JInternalFrame createFrame(String title)
  {
    final JInternalFrame f1 = new JInternalFrame(title, true, true);
    f1.setVisible(true);
    f1.getContentPane().add(new JLabel(title));
    return f1;
  }
}

简单回答:没有人阻止你在没有JDesktopPane的情况下使用它们,尽管使用它们更自然。 documentation说:“通常,您将JInternalFrame添加到JDesktopPane。”

嗯,“一般”并不排除豁免。

顺便说一句JOptionPane.showInternal…Dialog是使用JInternalFrame而不是JDesktopPane的应用程序的典型示例。