Java数据绑定最佳实践

时间:2010-06-28 14:38:46

标签: java swing data-binding binding

即使我不是Java新手,我也只是在学校/大学环境中使用它,所以我不知道企业中使用的所有最佳实践。

特别是我现在正在开发一个Java桌面应用程序(在UI层使用Swing),我对使用swing组件进行数据绑定的最佳实践特别感兴趣。

例如,我可以在模型层有一个模型对象列表,我需要在JTable中显示它们。然后,当选择了一行JTable时,我需要在一些JLabel上显示一些与所选行对应的模型对象的信息。

我应该使用哪些库?这样做的最佳做法是什么?

我正在寻找一些链接/文章/教程(/书籍?)来深入研究这个主题,并了解各种解决方案的优缺点。

4 个答案:

答案 0 :(得分:6)

对于您给出的具体示例,我建议采用以下方法:

  1. 将您的模型对象表示为List<Model>实施支持List的{​​{1}}(例如RandomAccess)。
  2. 子类ArrayList并覆盖AbstractTableModel以索引到您的getValueAt(int row, int col)并检索相应的List<Model>实例。然后返回要绑定到列的特定属性:Model
  3. 总的来说,在涉及数据绑定而不是使用框架时,我会自己动手。对于编辑器样式的面板,我通常实现三种方法:colinitialise()commit(),其中clear()采用正在编辑的域对象的实例initialise应用任何更改并返回域对象的已修改实例,commit清除所有UI组件值或将其设置回默认值。

答案 1 :(得分:1)

始终打开您的应用程序以进行扩展,并牢记耦合因素。我的意思是你应该将所有数据模型存储在不同的数据结构中,而不管UI层(Swing组件)。您应该尝试使用单独的松散耦合(具有单独的数据提供程序包)数据结构,该数据结构将为您提供所需的所有值。一旦设计到位,您就可以开始担心UI绑定了。

为您的挥杆相关开发提供一个简洁的UI IDE(如Netbeans)。总是去layouts。布局一开始很难设计,但是一旦你开始使用布局,它将非常有用和方便。你将进一步了解Swing和当然Swingworkers的听众。做一个谷歌,你会发现这些非常好的资源。

答案 2 :(得分:1)

要处理选择操作,您需要在ListSelectionListener的选择模型上实施JTable。您可以获得一些详细信息herehere

一旦事件被触发,您将获得偶数的一些数据,包括事件的source。您还将获得前导选择索引,您可以使用该索引来标识所选行(假设您不允许多项选择)。您必须从表模型(或其他共享模型,取决于您的模型设计)收集数据对象,以获取按钮的值。

答案 3 :(得分:0)

我不知道摇摆很好,但你尝试过模型gui中介模式吗?适用于所有语言和任何gui组件。

相关问题