我正在為我的計算機科學老師制作一個 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
提交
取消