有没有办法确保用户无法关闭或离开我的Swing应用程序?我试图将其全屏显示,但你仍然可以使用Alt-Tab远离它 - 此外,当你决定使用JOptionPane的对话框时,这不会很好.
那么,有没有办法让用户在设备上只使用这一个Java程序?
编辑:有些人想知道这个目的.该应用程序应该被"嵌入"到手持设备(在Windows下运行),因此设备的用户将使用它,因为我们打算使用它 - 例如,他们不会玩Freecells或做更糟糕的是,而不是做实际的工作.你看过售票亭了吗?他们被锁定得很好,你不能只关闭他们的华丽GUI并进入Windows桌面!
好的@Daniel通过调用以下方式向您展示了如何使Java应用程序不可关闭(+1给他)
JFrame#setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
在JFrame实例上.
为了确保你不能离开它,即按CTRL+ ALT+ DEL和ALT+ TAB等你可能想要这样做(仅适用于windows):
1)通过以下方式禁用TaskManager/CTRL+ ALT+ DEL:
设置注册表项:
HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/System/DisableTaskMgr = 1
通过reg脚本或cmd.exe.
2)要像ALT+ TAB等一样禁用所有快捷方式,请参阅此处 (下载/使用*.reg脚本并通过它执行cmd).
不可关闭是的,您可以使用setDefaultCloseOperation();并传递它JFrame.DO_NOTHING_ON_CLOSE
例子:
import javax.swing.*;
import java.awt.*;
class app extends JFrame {
app(String title, int height, int width)
{
super (title);
setSize(width, height);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setVisible(true);
}
}
class program {
public static void main(String[] args) {
app myApp = new app("Hello", 350, 750);
}
}
Run Code Online (Sandbox Code Playgroud)