2015-11-02 86 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页面 –

回答

相关问题