你可以自己只是測試它:
public static void main(String[] args) {
int result = JOptionPane.showConfirmDialog(null, "This is a test",
"Test", JOptionPane.OK_CANCEL_OPTION);
System.out.println("result: " + result);
}
它取決於您使用哪個JOptionPane,但對於showConformDialog,您會發現它返回-1,與JOptionPane.CLOSED_OPTION
相同。
公共靜態最終詮釋CLOSED_OPTION
返回從類方法值,如果用戶關閉窗口而不做任何選擇,更可能這應視爲CANCEL_OPTION或NO_OPTION:這是在其中規定了JOptionPane API很好的描述。
編輯
你問JOptionPane的是/否選項,再次測試它自己。例如,
import javax.swing.JOptionPane;
public class TestOptionPane {
public static void main(String[] args) {
int result = JOptionPane.showConfirmDialog(null, "This is a test",
"Test", JOptionPane.YES_NO_OPTION);
System.out.println("result: " + result);
switch (result) {
case JOptionPane.YES_OPTION:
System.out.println("Yes Pressed");
break;
case JOptionPane.NO_OPTION:
System.out.println("No Pressed");
break;
case JOptionPane.CLOSED_OPTION:
System.out.println("Dialog closed");
break;
default:
System.out.println("Default");
break;
}
}
}
編輯2
幽州:
我已經試過了,但它不工作。當我按下右上角的X按鈕時,它仍會顯示JFrame。
然後你的邏輯錯了。
如果您使用上面的開關,而不是在用戶中止時使用println關閉了應用程序,該怎麼辦?
很可能你傳遞了一個'新的JFrame'作爲第一個參數,當它應該是'null'時,就像@HovercraftFullOfEels在他的回答中一樣。 –