2011-05-19 43 views
0

我正在启动一个Java项目并需要一种方法来完全锁定框架。通过锁定我的意思是:如何在Java中锁定框架(GUI)

  • 用户无法关闭它
  • 用户无法拖动它
  • 用户无法将其最小化
  • 它坐落在任务栏的顶部和其他一切(除非另有规定)

基本上,这是一个全屏接管。

+0

@MaxMaxkie: “是这样的可能呢?”我当然不希望。 – 2011-05-19 20:26:52

+1

Google Java Kiosk或Java Kiosk模式,因为我相信这就是您要找的。我见过的大多数解决方案都需要一些直接与操作系统交互的代码,因此您可能需要使用JNA或JNI。 – 2011-05-19 21:35:42

+0

我查看了Kiosk模式,但是我认为当我可能能够使用Full Screen Exclusive工作时,这将会工作太多(使用JNA或JNI)。 – n0pe 2011-05-20 17:44:31

回答

3

尝试使用fullscreen exclusive mode并查看它是否适合您。

+0

从我读过的这个看起来似乎有风险。您提供的链接一直提及机器可能不支持这一点的可能性。机器实际支持它的可能性有多大,而且它不危险? – n0pe 2011-05-19 20:54:29

1

你可以尝试这样的:

import javax.swing.*; 
import java.awt.*; 

public class FullScreenTest extends JFrame { 

    private GraphicsDevice device; 
    private boolean isFullScreen = false; 

    public FullScreenTest(GraphicsDevice device) { 
     super(device.getDefaultConfiguration()); 
     this.device = device; 
     setTitle("Display Mode Test"); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
    } 

    private void initComponents(Container c) { 
     setContentPane(c); 
     c.setBackground(Color.RED); 
    } 

    public void begin() { 
     isFullScreen = device.isFullScreenSupported(); 
     setUndecorated(isFullScreen); 
     setResizable(!isFullScreen); 
     if (isFullScreen) { 
      // Full-screen mode 
      device.setFullScreenWindow(this); 
      validate(); 
     } else { 
      // Windowed mode 
      pack(); 
      setVisible(true); 
     } 
    } 

    public static void main(String[] args) { 
     GraphicsEnvironment env = GraphicsEnvironment. 
      getLocalGraphicsEnvironment(); 
     GraphicsDevice[] devices = env.getScreenDevices(); 
     FullScreenTest test = new FullScreenTest(devices[0]); 
     test.initComponents(test.getContentPane()); 
     test.begin(); 
    } 
} 
+0

我跑了这段代码,我得到一个teensy weensy小窗口:)这可能是我的设备? – n0pe 2011-05-19 21:02:17

+1

@MaxMackie如果'isFullScreen'布尔值可以打印出值,并让我知道它是什么? – 2011-05-19 21:15:57

+0

其实得到了这个工作,非常感谢这 - 这正是我需要的。但是,这将在任何计算机上工作吗?它有什么限制? – n0pe 2011-05-20 17:43:33