2015-11-02 28 views
0

我在我的項目中有3個按鈕的對話框,我希望他們執行一些代碼。我知道這些方法返回整數(每個按鈕都不相同),我可以使用「if」指令來檢查按下哪個按鈕並執行特定操作。它起作用,但起初它關閉了對話,這不是我想要的。我只想通過第三個按鈕或[x]關閉它。如何使JOptionPane中的按鈕執行某些操作而不關閉它?

public void popup(){ 
    JButton[] buttons = {new JButton("Save"),new JButton("Re-draw"),new JButton("Close")}; 
    if(results.size()==0){ 
     JOptionPane.showMessageDialog(frame, "Please fill all fields", "Error", JOptionPane.PLAIN_MESSAGE); 
    } 
    else{ 
    JList<String> resultsList = new JList(results.toArray(new String[results.size()])); 
    int result = JOptionPane.showOptionDialog(frame, resultsList, "Results",JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, buttons, buttons[0]); 

     } 
    }); 
    System.out.println(result); 
     if (result == 0){ 
      /*saving results*/ 
     } 
     else if(result == 1){ 
      draw(); 

     } 

正如我所說,它的工作原理,但按任何按鈕結果關閉對話框。我不知道它的可能禁用自動對話框關閉按鈕「保存」和「重繪」?

+1

請在您的問題中包含證明問題所需的最少量代碼。 – blm

+0

沒有看到代碼它很難說,但我會打賭......如果你有一個對話框,這意味着你有源...做你想要在點擊處理程序中的按鈕的工作。 –

+0

也許給'showOptionPane'一個鏡頭而不是'showMessageDialog'?查看此頁面上的「創建並顯示簡單對話框」:https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html頁面 –

回答

相關問題