听三个手指的手势?
Listen for 3 finger gestures?
我正在为我的计算机科学老师制作一个 java 应用程序,允许他通过从 Google Drive 文件夹加载一些 PDF 并将它们显示到 JScrollPane 上来给学生进行数字测试Java摇摆。这个应用程序的目标是让测试不可避免,这样学生就不会通过去 google 寻找答案来作弊。然后,在 class 结束时,我的老师会告诉学生一个代码,允许他们通过将应用程序输入 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);
此外,如果您还有其他方法可以在没有退出代码的情况下退出此应用程序,这些方法是什么?我将如何阻止用户利用它们?
您可以尝试使用 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));
我正在为我的计算机科学老师制作一个 java 应用程序,允许他通过从 Google Drive 文件夹加载一些 PDF 并将它们显示到 JScrollPane 上来给学生进行数字测试Java摇摆。这个应用程序的目标是让测试不可避免,这样学生就不会通过去 google 寻找答案来作弊。然后,在 class 结束时,我的老师会告诉学生一个代码,允许他们通过将应用程序输入 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);
此外,如果您还有其他方法可以在没有退出代码的情况下退出此应用程序,这些方法是什么?我将如何阻止用户利用它们?
您可以尝试使用 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));