2011-05-19 71 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