我有一个主控制器类,它显示了一个包含JTable的JFrame,对于这个表中的每一行,我必须在doubleclick上显示一个特定的“表单”。
此辅助窗口将需要有关在主JTable上选择的特定行的信息,以及在控制器类中保存为字段的一些对象。
我需要做的一个概念性示例如下: 我有一组商店(在主JFrame的JTable中列出),双击一行,必须出现另一个窗口,允许管理商店(发送订单,检查交货等...)
我的问题是,我是Swing的新手,是:像这样一个共同模式的最佳组织是什么? 我应该建模另一个JFrame并作为参数传递我可能碰巧需要的所有数据(我真的不喜欢这个),或者我应该只传递一个对Controller类的引用(这会违反MVC模式,我认为)。 或者也许我应该使用JDialog而不是另一个JFrame?问题是,实际上,从第二个窗口我需要的功能对于对话来说有点太大了,我认为...
我很困惑,任何提示/建议/建议将不胜感激! 谢谢
此致
答案 0 :(得分:4)
或许我应该使用JDialog而不是另一个JFrame?
<强>宾果强>
答案 1 :(得分:1)
我实际上不喜欢在我的Model类(又名Shop)中有一个监听器的想法 - 实现ActionListener
。我想我会扩展JDialog
类(让我们称之为MyJDialog
)然后当双击一行时...创建MyJDialog
类的新实例并传入Shop
构造函数中的对象。在MyJDialog
类中,您可以通过调用mutators(setter)来修改Shop对象。此外,Shop
类应该在更改属性时通知观察者 - 请查看PropertyChangeSupport。