作为一名 Java Swing 新手,我在将用户界面逻辑与域逻辑分开时遇到了一些麻烦。
我有一个带有 JFrame 的小型(微不足道?)Swing 应用程序,其中包含一个 JLabel、JTextField 和一个 JButton。当按下 JButton 时,会弹出一个 JFileChooser 对话框。选择文件后,JTextField 包含文件的绝对路径。到目前为止没有什么壮观的。我要完成的下一件事是将文件的这个绝对路径“注入”到文件管理器类中,该类将在进行选择并更新 JTextField 时处理文件的实际处理(每次选择文件时)使用 JButton)。
我的问题:
- 如何让文件管理器知道何时开始读取文件?(例如计算该文件中的行数)
- 如何以在 UI 层内共享最少信息的方式实现域层?我应该向 UI 添加文件管理器实例吗?
- 我应该使用 JTextField 的值作为对文件管理器的引用,还是应该使用 JButton 操作将值设置到文件管理器中?我的意思是:使用 JTextField 的 propertychangelistener 或使用 JButton 的 actionlistener?
- 我应该使用 filebean 将文件的绝对路径存储在域层中还是直接将其插入文件管理器?不同之处在于:当我使用属性更改侦听器时,绝对文件路径的值可以在 UI 输入更改时更新,但是当我直接使用构造函数或设置器插入值时,我必须在文件管理器中处理更改而不是处理文件bean中的更改。
- 如何在域逻辑内的文件管理器内引用 UI 中使用的文件bean?
- 领域逻辑和业务逻辑一样吗?我的意思是:文件管理器类应该在包whatever.b-logic中,而filebean类应该在包whatever.domain中?
该应用程序分为几个包:
- 随便:主类
- 不管什么.presentation : 摇摆的东西
- 不管是什么域名:数据的东西
- 不管是什么逻辑:应用程序逻辑
我希望我足够清楚...
提前感谢您的清理工作。