【问题标题】:Resetting a JDialog after closing关闭后重置 JDialog
【发布时间】:2013-06-15 14:01:29
【问题描述】:
我使用JDialog 获取付款信息,paymentAmount 和Date 由JTextfield 和datechooser.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
}});