关闭后重置JDialog

时间:2013-06-15 14:01:30

标签: java swing netbeans jdialog

我使用JDialog获取付款信息​​,paymentAmountDateJTextfielddatechooser.beans.DateChooserCombo提交。

当用户关闭JDialog或点击Cancel时,JDialog会关闭。但是当他们点击“付款”按钮并再次显示JDialog时,会显示之前提交的输入。< / p>

我希望JDialog在出现时都是默认状态。是否有默认方式执行此操作,或者我必须创建自己的重置方法?

2 个答案:

答案 0 :(得分:3)

关闭对话框时,不会销毁它。它会变得不可见,但它仍然包含关闭时的所有内容。

如果应该再次显示对话框,您可以覆盖函数setVisible()并重新初始化它。

 @Override
 public void setVisible(boolean bVisible)
 {
     if(bVisible == false)
     {
         super.setVisible(bVisible);
         return;
     }

     initMyValues();
     super.setVisible(bVisible);
     return;
 }

或者,您可以创建WindowListener,然后您会收到有关窗口状态更改的通知。取决于更适合您的需求。 WindowListener不要求您创建单独的类,jsut来覆盖setVisible(),但您必须添加接口所需的一些额外功能。

答案 1 :(得分:3)

另一种解决方法是在对话框中设置windowListener

myDialog.addWindowListener(new WindowListener() {
            /*Implements over methods here*/
            @Override
            public void windowClosing(WindowEvent e) {
                //set default values here
            }});