我使用JDialog来获取付款信息,paymentAmount和Date是由JTextfield和datechooser.beans.DateChooserCombo提交的。
当用户关闭JDialog或单击Cancel时,JDialog closes.But当他们单击Payment按钮时,JDialog重新出现,以前提交的输入将显示出来。
我希望JDialog是默认的状态,只要它appears.Is有一个默认的方式这样做,或者我必须创建我自己的重置方法?
发布于 2013-06-15 22:04:42
关闭对话框时,它不会被销毁。它将变得不可见,但它仍然包含它关闭时的所有内容。
如果应该再次显示该对话框,您可以覆盖函数setVisible()并重新初始化它。
@Override
public void setVisible(boolean bVisible)
{
if(bVisible == false)
{
super.setVisible(bVisible);
return;
}
initMyValues();
super.setVisible(bVisible);
return;
}或者,您可以创建一个WindowListener,然后您会收到有关窗口的各种状态更改的通知。这取决于什么更适合您的需求。WindowListener不要求您创建一个单独的类jsut来覆盖setVisible(),但是您必须添加接口所需的一些额外函数。
发布于 2013-06-15 22:05:59
另一种解决方法是为对话框设置一个windowListener。
myDialog.addWindowListener(new WindowListener() {
/*Implements over methods here*/
@Override
public void windowClosing(WindowEvent e) {
//set default values here
}});https://stackoverflow.com/questions/17124438
复制相似问题