Java全屏程序(Swing)-Tab / ALT F4

在我的Java程序运行时,我需要一种方法来阻止人们使用其他程序。 IE停止人们切换标签并按下alt f4 …

谢谢 :)

使程序全屏使用;

window.setExtendedState(Frame.MAXIMIZED_BOTH); //maximise window window.setUndecorated(true); //remove decorations eg x in top right 

并使窗口始终在最顶层使用(阻止人们使用其他正在运行的程序);

 window.setAlwaysOnTop(true); 

您无法在Java级别执行此操作 – 您需要将操作系统置于某种“Kiosk模式”中。

未经请求的评论 – 您是否需要这个,因为您(或您的客户)讨厌您的用户,并希望他们永远诅咒您? 您是否计划在程序中添加“关闭计算机”等function?

如果您正在寻找全屏支持,这是我使用的代码。 应该足以让你前进。 您只需要一个全局布尔变量来说明应用程序是否全屏。 你可以修补它,让它显示你喜欢的。

 /** * Method allows changing whether this window is displayed in fullscreen or * windowed mode. * @param fullscreen true = change to fullscreen, * false = change to windowed */ public void setFullscreen( boolean fullscreen ) { //get a reference to the device. GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); DisplayMode dispMode = device.getDisplayMode(); //save the old display mode before changing it. dispModeOld = device.getDisplayMode(); if( this.fullscreen != fullscreen ) { //are we actually changing modes. //change modes. this.fullscreen = fullscreen; // toggle fullscreen mode if( !fullscreen ) { //change to windowed mode. //set the display mode back to the what it was when //the program was launched. device.setDisplayMode(dispModeOld); //hide the frame so we can change it. setVisible(false); //remove the frame from being displayable. dispose(); //put the borders back on the frame. setUndecorated(false); //needed to unset this window as the fullscreen window. device.setFullScreenWindow(null); //recenter window setLocationRelativeTo(null); setResizable(true); //reset the display mode to what it was before //we changed it. setVisible(true); } else { //change to fullscreen. //hide everything setVisible(false); //remove the frame from being displayable. dispose(); //remove borders around the frame setUndecorated(true); //make the window fullscreen. device.setFullScreenWindow(this); //attempt to change the screen resolution. device.setDisplayMode(dispMode); setResizable(false); setAlwaysOnTop(false); //show the frame setVisible(true); } //make sure that the screen is refreshed. repaint(); } }
 /** * Method allows changing whether this window is displayed in fullscreen or * windowed mode. * @param fullscreen true = change to fullscreen, * false = change to windowed */ public void setFullscreen( boolean fullscreen ) { //get a reference to the device. GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); DisplayMode dispMode = device.getDisplayMode(); //save the old display mode before changing it. dispModeOld = device.getDisplayMode(); if( this.fullscreen != fullscreen ) { //are we actually changing modes. //change modes. this.fullscreen = fullscreen; // toggle fullscreen mode if( !fullscreen ) { //change to windowed mode. //set the display mode back to the what it was when //the program was launched. device.setDisplayMode(dispModeOld); //hide the frame so we can change it. setVisible(false); //remove the frame from being displayable. dispose(); //put the borders back on the frame. setUndecorated(false); //needed to unset this window as the fullscreen window. device.setFullScreenWindow(null); //recenter window setLocationRelativeTo(null); setResizable(true); //reset the display mode to what it was before //we changed it. setVisible(true); } else { //change to fullscreen. //hide everything setVisible(false); //remove the frame from being displayable. dispose(); //remove borders around the frame setUndecorated(true); //make the window fullscreen. device.setFullScreenWindow(this); //attempt to change the screen resolution. device.setDisplayMode(dispMode); setResizable(false); setAlwaysOnTop(false); //show the frame setVisible(true); } //make sure that the screen is refreshed. repaint(); } }