【问题标题】:Resetting a JDialog after closing关闭后重置 JDialog
【发布时间】:2013-06-15 14:01:29
【问题描述】:

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

当用户关闭JDialog 或点击Cancel 时,JDialog 关闭。但是当他们点击支付按钮并再次出现JDialog 时,会显示之前提交的输入。

我希望 JDialog 在出现时成为默认状态。是否有默认方法可以做到这一点,或者我必须创建自己的重置方法?

【问题讨论】:

    标签: java swing netbeans jdialog


    【解决方案1】:

    当您关闭一个对话框时,它不会被破坏。它会变得不可见,但它仍然包含关闭时的所有内容。

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

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

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

    【讨论】:

      【解决方案2】:

      另一种解决方法是为您的对话框设置windowListener

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

      【讨论】:

      • NetBeans 会在您创建新的 JDialog 时自动生成此类代码(细微差别:它注册的是 WindowAdapter 而不是 WindowListener)。完成后,您不能在付款按钮事件处理程序中调用 dispose() 吗?这是在类似问题中推荐的:stackoverflow.com/questions/7256606/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      相关资源
      最近更新 更多