全屏独家模式

时间:2014-04-06 08:52:26

标签: java swing fullscreen

我想在我已经制作的程序中实现全屏独占模式,我的主要类是freeTTS.java,它是:

package freetts;

public class FreeTTS {

public static void main(String[] args) {


   new FormTTS().setVisible(true);


    }
}

整个程序的其他代码在FormTTS.java中,它是JFrame的子类。

我试着把代码放在这里全屏显示,但它给出了各种不同的错误,我是否必须将代码放在FreeTTS或FormTTS中?

这是我的文件结构:(注意:FormTTS是另一个java文件) enter image description here

看到我想删除粉红色的整个边框: enter image description here

2 个答案:

答案 0 :(得分:2)

您应该能够执行以下操作,但我建议您阅读官方guide on fullscreen exclusive mode

FormTTS ftts = new FormTTS();

GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
gd.setFullScreenWindow(ftts);

ftts.setUndecorated(true);
ftts.setVisible(true);

答案 1 :(得分:2)

从你的last question,答案可能与netbeans GUI构建器格式和程序设计不兼容,所以这里是一个可能更兼容的示例。试一试,看看会发生什么。

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class FormTTS extends JFrame {
    private boolean isFullScreen = false;
    private JButton button;

    public FormTTS() {
        initComponents();
        initFullScreen();
    }

    private void initComponents() {
        setLayout(new GridBagLayout());
        button = new JButton(
                "I'm a smallbutton in a Huge Frame, what the heck?!");
        add(button);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
    }

    private void initFullScreen() {
        GraphicsEnvironment env = GraphicsEnvironment
                .getLocalGraphicsEnvironment();
        GraphicsDevice device = env.getDefaultScreenDevice();
        isFullScreen = device.isFullScreenSupported();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setUndecorated(isFullScreen);
        setResizable(!isFullScreen);
        if (isFullScreen) {
            // Full-screen mode
            device.setFullScreenWindow(this);
            validate();
        } else {
            // Windowed mode
            this.pack();
            this.setExtendedState(MAXIMIZED_BOTH);
            this.setVisible(true);
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new FormTTS().setVisible(true);
            }
        });
    }
}