我想开发一个JAVA桌面应用程序,它以全屏模式打开,并从数据库中呈现一些问题及其选项。
从数据库中获取数据并在标签上显示对我来说不是一大挑战......
但是当应用程序打开时,我想限制用户使用应用程序遍历键(如Alt + Tab)等在应用程序之间切换。
在编码期间,我使用了jFrame.setAlwaysOnTop(true);
,这使应用程序始终保持在Top,但是当我切换到桌面时;我的应用程序被最小化,我可以访问其他应用程序。
也像windows + D alos想要限制的键,换句话说,如果没有关闭应用程序,用户将无法选择任何其他选项。
如果我的应用程序在Linux / Unix上运行,那么我想应用所有这些独立于平台意味着的限制,那么也会出现相同的行为。
有任何建议或解决方案吗?
答案 0 :(得分:2)
简单地说,不能。
如果您是本机的管理员,则可以将其配置为 kiosk 模式。在Windows 8.1中,这变得更容易。
但是,自助服务终端模式不是第三方应用程序可以控制的。这是计算机用户 - 必须精明 - 控制的东西。
答案 1 :(得分:1)
您可以使用以下代码禁用/阻止Alt + Tab。但是你不能阻止用户用鼠标切换到桌面......
public class AltTabStopper implements Runnable
{
private boolean working = true;
private JFrame frame;
public AltTabStopper(JFrame frame)
{
this.frame = frame;
}
public void stop()
{
working = false;
}
public static AltTabStopper create(JFrame frame)
{
AltTabStopper stopper = new AltTabStopper(frame);
new Thread(stopper, "Alt-Tab Stopper").start();
return stopper;
}
public void run()
{
try
{
Robot robot = new Robot();
while (working)
{
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_TAB);
frame.requestFocus();
try { Thread.sleep(10); } catch(Exception) {}
}
} catch (Exception e) { e.printStackTrace(); System.exit(-1); }
}
}