我有一个使用netbeans在GUI中制作的大型java程序,其中我有很多java文件。我使用过frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
,但对我来说效果不佳。我真正想要的是,当我遇到这个API时,这些项目会重新调整到全屏大小。我想知道如何在我的程序中实现此API。问题是我是一个新手(我使用Netbeans GUI完成大部分程序),我不知道我应该在哪里添加代码以使其使用此API
有没有简单的方法呢?哪个不需要我重新制作整个节目?
答案 0 :(得分:2)
你应该通过Full Exclusive Mode tutorial。一切都是检查是否支持全屏模式。如果是,则获取屏幕设备和setFullScreenWindow(...)
。如果不支持,只需使用常规窗口。
见这个简单的例子
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class FullWindow extends JFrame {
private boolean isFullScreen = false;
private GraphicsDevice device;
public FullWindow(GraphicsDevice device) {
this.device = device;
initFullScreen();
}
private void initFullScreen() {
isFullScreen = device.isFullScreenSupported();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setUndecorated(isFullScreen);
setResizable(!isFullScreen);
if (isFullScreen) {
// Full-screen mode
device.setFullScreenWindow(this);
validate();
} else {
// Windowed mode
this.setExtendedState(MAXIMIZED_BOTH);
this.setVisible(true);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GraphicsEnvironment env = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice device = env.getDefaultScreenDevice();
new FullWindow(device);
}
});
}
}