我正在为我的计算机科学老师制作一个 Java 应用程序,允许他通过从 Google Drive 文件夹加载大量 PDF 并使用 Java Swing 将它们显示到 JScrollPane 上来为学生提供数字测试。这个应用程序的目标是让测试不可避免,这样学生就不会通过去谷歌寻找答案来作弊。然后,在课程结束时,我的老师会告诉学生一个代码,允许他们通过将应用程序输入 JTextField 来退出该应用程序。目前,此应用程序的 JFrame 设置有以下设置:Frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);这意味着,在大多数情况下,应用程序是无法逃脱的,让用户停留在 JFrame 上,直到他们输入代码退出。我面临的问题是,有一些方法可以通过计算机内置的手势退出应用程序或将其最小化。具体来说,我正在查看的是用 3 根手指在触控板上向下滑动,这会最小化应用程序,从而允许用户打开 Google。据我所知,没有办法暂时禁用计算机内置的手势,所以我能看到的下一个最佳选择是听用户将 3 个手指放在触控板上,然后拒绝用户滚动的能力。有没有办法做到这一点 ?此外,如果您还有其他方法可以在没有退出代码的情况下退出此应用程序,这些方法是什么?我将如何阻止用户利用它们?Frame.setExtendedState(JFrame.MAXIMIZED_BOTH);Frame.setUndecorated(true);Frame.setVisible(true);Frame.setAlwaysOnTop(true);Frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);此外,如果您还有其他方法可以在没有退出代码的情况下退出此应用程序,那么这些方法是什么?我将如何阻止用户利用它们?
1 回答
catspeake
TA贡献1111条经验 获得超0个赞
您可以尝试使用 WindowAdapter 来阻止 JFrame 的最小化。当按下最小化(或记录手势)时,WindowAdapter 应该只覆盖 JFrame 的默认操作。
private WindowAdapter getWindowAdapter(JFrame frm) {
return new WindowAdapter() {
@Override
public void windowIconified(WindowEvent we) {
frm.setState(JFrame.NORMAL);
}
};
并将 WindowListener 添加到您的 JFrame:
frm.addWindowListener(getWindowAdapter(frm));
添加回答
举报
0/150
提交
取消