【发布时间】:2012-02-07 07:49:37
【问题描述】:
我有相当大的摇摆界面(几个文本框、组合框、复选框、自定义弹出对话框等)和一个在 ui 控件更改时必须更改的数据模型:在文本框中输入新文本、单击复选框等.
问题是:组织输入值的更新+验证的最佳实践是什么。
不幸的是,我不能使用像 beansbinding 这样的绑定框架。
【问题讨论】:
标签: java swing design-patterns data-binding
我有相当大的摇摆界面(几个文本框、组合框、复选框、自定义弹出对话框等)和一个在 ui 控件更改时必须更改的数据模型:在文本框中输入新文本、单击复选框等.
问题是:组织输入值的更新+验证的最佳实践是什么。
不幸的是,我不能使用像 beansbinding 这样的绑定框架。
【问题讨论】:
标签: java swing design-patterns data-binding
向组件添加适当的侦听器,并在触发事件时更新模型。
或者设计您的 UI,以便仅在单击 Save 或 OK 按钮时将所有内容保存到模型中。这也有助于验证,因为您只需要在单击按钮时立即验证所有内容。
【讨论】:
you just need to validate everything at once, when the button
将 JB Nizet 的答案与您的组件中的验证结合起来,例如使用 JFormattedTextField(或其增强版本)。您也可以将JFormattedTextField 用作JComboBox 实例的编辑器。您可以向JSlider 实例添加验证。
简而言之,当用户输入无效值时,立即向用户提供反馈。这与模型方面的验证相结合是一个很好的应用程序。
这可以与现代网站进行比较:使用 javascript 进行客户端验证以向用户提供即时反馈 + 用于验证的服务器端验证不通过 UI,或者避免讨厌的用户绕过您的客户端验证
【讨论】: