代码之家  ›  专栏  ›  技术社区  ›  HipsterZipster

如何创建一个包含Windows标题栏的JAVA Swing应用程序?

  •  5
  • HipsterZipster  · 技术社区  · 16 年前

    我正在研究一个在心理学实验中使用的JAVA Swing应用程序,研究人员已经要求我让程序“屏幕熄灭”,这样用户就不会有外部刺激。他们希望Swing应用程序真正是全屏的,并且顶部没有任何类型的标题栏或最小化/最大化/关闭按钮。

    该软件将使用Javase6在WindowsXP环境中运行。

    我如何才能做到这一点,如果适用,请提供一个代码片段。

    谢谢!

    3 回复  |  直到 12 年前
        1
  •  11
  •   JeeBee    16 年前

    使用全屏幕Java API?

    http://java.sun.com/docs/books/tutorial/extra/fullscreen/exclusivemode.html

    http://www.artificis.hu/2006/03/16/java-awtswing-fullscreen

    JFrame fr = new JFrame();
    fr.setResizable(false);
    if (!fr.isDisplayable()) {
        // Can only do this when the frame is not visible
        fr.setUndecorated(true);
    }
    GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    try {
      if (gd.isFullScreenSupported()) {
        gd.setFullScreenWindow(fr);
      } else {
        // Can't run fullscreen, need to bodge around it (setSize to screen size, etc)
      }
      fr.setVisible(true);
      // Your business logic here
    } finally {
      gd.setFullScreenWindow(null);
    }
    
        2
  •  9
  •   erickson    16 年前

    使用 setUndecorated(true) 财产。请注意,这必须在使框架可见之前完成。

    JFrame frame = new JFrame();
    Toolkit tk = Toolkit.getDefaultToolkit();
    frame.setBounds(new Rectangle(new Point(0, 0), tk.getScreenSize()));
    frame.setUndecorated(true);
    frame.setVisible(true);
    
        3
  •  0
  •   Chris Jesz    12 年前

    我知道这条线很旧,但我在寻找如何做同样的事情时发现了它。我找不到任何我想要使用的解决方案,所以我想出了这个。我发现下面的解决方案不仅有效,而且比上面的答案简单得多。

    JFrame frame = new JFrame();
    frame.setResizable(false);
    frame.setUndecorated(true);
    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setSize(dim);
    frame.setVisible(true);