我使用JDialog
获取付款信息,paymentAmount
和Date
由JTextfield
和datechooser.beans.DateChooserCombo
提交。
当用户关闭JDialog
或点击Cancel
时,JDialog
会关闭。但是当他们点击“付款”按钮并再次显示JDialog
时,会显示之前提交的输入。< / p>
我希望JDialog
在出现时都是默认状态。是否有默认方式执行此操作,或者我必须创建自己的重置方法?
答案 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
}});