創(chuàng)建一個(gè)JFrame ,設(shè)置成undecorated,設(shè)置bounds為屏幕大小
成都創(chuàng)新互聯(lián)專(zhuān)注于微山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供微山營(yíng)銷(xiāo)型網(wǎng)站建設(shè),微山網(wǎng)站制作、微山網(wǎng)頁(yè)設(shè)計(jì)、微山網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造微山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供微山網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
//import 如下:
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Toolkit;
import javax.swing.JFrame;
代碼如下:
JFrame frame = new JFrame();
frame.setUndecorated(true);
// 取得屏幕大小
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle bounds = new Rectangle( screenSize );
frame.setBounds( bounds );
frame.setVisibale(true);
GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = environment.getDefaultScreenDevice();
device.setFullScreenWindow(this); // this == jframe instance (window子類(lèi)都可以)
樓上那個(gè)只是最大化而已。 不能實(shí)現(xiàn)全屏。。 這個(gè)才是實(shí)現(xiàn)全屏。
public class MyFrame extends JFrame{
public MyFrame(){
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setTitle("全屏!"); //設(shè)置標(biāo)題處的文字
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗體關(guān)閉時(shí)的操作 退出程序
double width = Toolkit.getDefaultToolkit().getScreenSize().width; //得到當(dāng)前屏幕分辨率的高
double height = Toolkit.getDefaultToolkit().getScreenSize().height;//得到當(dāng)前屏幕分辨率的寬
this.setSize((int)width,(int)height);//設(shè)置大小
this.setLocation(0,0); //設(shè)置窗體居中顯示
this.setResizable(false);//禁用最大化按鈕
}
/**
* 程序的入口點(diǎn)
* @param args
*/
public static void main(String[] args) {
MyFrame frame = new MyFrame();
frame.setVisible(true); //設(shè)置是否顯示
}
}
這個(gè)研究了,半上午,沒(méi)辦法,直接簡(jiǎn)單的改幾行代碼,就能變成窗體程序的,
需要重構(gòu)代碼的
把 ScreenManager 重構(gòu)成 JFrame 或是 剝離開(kāi) ScreenManager 直接用 Jframe
如果。只是想簡(jiǎn)單的 ,變成 窗體,可以
修改 frame.setUndecorated(true) 把這個(gè)屏蔽掉
但是,你只是,臨時(shí)的方法,不推薦,不能解決根本
java 中如何進(jìn)行全屏模式和窗口模式的轉(zhuǎn)換 代碼如下所示: import java.awt.Dimension; import java.awt.DisplayMode; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; @SuppressWarnings("serial") public class WindowModelSample extends JFrame { public WindowModelSample() { super("窗口/全屏模式轉(zhuǎn)換例子"); final JPanel panel = new JPanel(); final JButton button = new JButton("切換模式"); panel.setLocation(0, 0); Dimension dimension = new Dimension(1024, 768); panel.setSize(dimension); panel.setMaximumSize(dimension); panel.setMinimumSize(dimension); panel.setPreferredSize(dimension); panel.setLayout(null); button.addActionListener(new ActionListener() { boolean isWindowModel = true; @Override public void actionPerformed(ActionEvent e) { if ((isWindowModel = !isWindowModel)) { // 切換為窗口模式 WindowModelSample.this.dispose(); WindowModelSample.this.setUndecorated(false); WindowModelSample.this.getGraphicsConfiguration().getDevice().setFullScreenWindow(nu ll); WindowModelSample.this.setVisible(true); } else { // 切換為全屏獨(dú)占模式 WindowModelSample.this.dispose(); WindowModelSample.this.setUndecorated(true); WindowModelSample.this.getGraphicsConfiguration().getDevice().setFullScreenWindow(W indowModelSample.this); WindowModelSample.this.getGraphicsConfiguration().getDevice().setDisplayMode(new DisplayMode(Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height, 16, DisplayMode.REFRESH_RATE_UNKNOWN)); WindowModelSample.this.repaint(); } } }); button.setBounds(100, 100, 100, 100); panel.add(button); setResizable(false); setLayout(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setContentPane(panel); pack(); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new WindowModelSample(); } } 上邊這段代碼就是關(guān)于窗口模式和全屏模式之間的切換代碼,匆忙之間寫(xiě)的,有點(diǎn)簡(jiǎn)陋。