我无法通过FullscreenWindow看到我的窗口

时间:2013-11-14 19:40:14

标签: java swing fullscreen

一切都是黑色的。

btnFullScreen.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
                GraphicsDevice gd = ge.getDefaultScreenDevice();
                if (gd.isFullScreenSupported()) {
                    gd.setFullScreenWindow(frame);
                }
            }
        });

1 个答案:

答案 0 :(得分:1)

 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
                GraphicsDevice gd = ge.getDefaultScreenDevice();
                if (gd.isFullScreenSupported()) {
                    gd.setFullScreenWindow(frame);
                }

gd.setFullScreenWindow(frame);函数要求在此函数调用之前看不到框架:

来自documentation

  

进入全屏模式时,如果要将窗口用作   全屏窗口不可见,此方法将使其可见。   返回窗口模式时它将保持可见。

     

进入全屏模式时,所有半透明效果都会重置   对于窗口。其形状设置为null,将不透明度值设置为   1.0f,背景颜色alpha设置为255(完全不透明)。返回窗口时,不会恢复这些值   模式。

     

它是未指定的,与平台相关的装饰窗户如何运作   在全屏模式下。因此,建议关闭   使用框架或对话框对象中的装饰   setUndecorated方法。

有什么问题:jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);

编辑:支持我的声明的演示,这就是我们所说的SSCCE 我也有一个按钮,框架最小化到按钮的大小。单击按钮以查看setExtendedState(JFrame.MAXIMIZED_BOTH)功能的操作。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyWindow extends JFrame
{
    int width=GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().width;
    int height=GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().height;
    public MyWindow ()
    {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton button = new JButton("Click Me");
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
               setExtendedState(JFrame.MAXIMIZED_BOTH);
            }
        });

        add(button);
        pack();

    }

    public static void main(String[] args)
    {
        new MyWindow().setVisible(true);

    }
}

编辑:来自您的以下评论:

  

是的,但我想要全屏,因为我的应用程序已经获得了   最大化。

您可能正在执行以下功能:jFrame.setUndecorated(true);,它将删除标题栏以及全部使框架包含全屏。