我想在我已经制作的程序中实现全屏独占模式,我的主要类是freeTTS.java,它是:
package freetts;
public class FreeTTS {
public static void main(String[] args) {
new FormTTS().setVisible(true);
}
}
整个程序的其他代码在FormTTS.java中,它是JFrame的子类。
我试着把代码放在这里全屏显示,但它给出了各种不同的错误,我是否必须将代码放在FreeTTS或FormTTS中?
这是我的文件结构:(注意:FormTTS是另一个java文件)
看到我想删除粉红色的整个边框:
答案 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);
}
});
}
}