通过spring作为单例bean创建时清晰的GUI表单

时间:2012-03-22 12:06:53

标签: java spring user-interface

在使用java和spring创建的桌面应用程序中,GUI表单创建为单例bean,因此每当显示表单时,所有预先输入的值都在那里。有没有比通过java代码清除每个表单字段更好的方式来获得新的表单?提前致谢

3 个答案:

答案 0 :(得分:2)

你可以像这样强制一个新的单例实例化

public class MyForm {
    // The instance
    private static MyForm instance = new MyForm();
    // Private constructor prevents instantiation from other classes
    private MyForm() { }
    // Get the singleton
    public static MyForm getInstance() { return instance; }

    // Force a new instance to be created         
    public static void resetInstance() {
           instance = new MyForm();
    }
}

但这不再是单身行为,也许你应该只使用一个新的实例化类。类似的东西:

myPanel.removeAll();
myPanel.add(new MyForm());

(构造函数当然应该公开)

答案 1 :(得分:1)

我建议一个更简单的替代方案,请使用singleton = false。如果要保留一些初始化片段,请使用init方法或bean post处理器。

答案 2 :(得分:0)

我覆盖了dispose方法并在init之后调用super.dispose()方法,在init方法中,在开头添加了以下行:getContentPane().removeAll();。 它适用于我的要求,当我希望数据保留在表单中时,我只是隐藏表单,当我想要一个新表单时,我处理表单并再次显示表单。