基本上这是一项管理属性的任务,我正在做一个比要求的复杂得多的解决方案。这只是我挣扎的最后一点。
让您了解我们拥有的东西:
- 属性(父类(super class))
- PropertiesToLet(扩展属性)
- PropertiesToSell(扩展属性)
- EstateAgent(用于管理属性的 GUI)
所以我遇到的问题基本上是 EstateAgent 类。
到目前为止我写了什么:http://pastebin.com/0qieM67j
大约 500 行——但我需要理论部分的帮助,而不是编程部分——因为我不想让你完成我的类(class)作业——我只需要解决方法。
我苦苦挣扎的台词来自: 55 到 113
它是关于我创建并向其中插入行的表格。每行代表一个属性。它可以是 propertyToLet 或 propertyToSell 对象。这些属性来 self 的 ArrayList<Property>
特性。
插入行和显示表格没问题,并且按应有的方式工作。所以代码有问题。我为代码结构道歉 - 但我们在提交方面受到限制 - 所以我们不能提交超过 4 个文件,这些文件显然是命名类 - 所以我不能向项目扩展任何更多的类或文件。
所以我现在要做的是:编辑属性。
我有代表属性的行。它向我显示了 arrayList 中的位置以及我可以获得的所有值。
所以现在有更多的可能性。:
- 在 PropertyToLet 中添加和删除租户
- 根据租户,您可以收取租金并支付租金,然后查看还需要支付多少租金。
- 在 PropertyToSell 中添加和删除购买者(如果有购买者,则出售的商品将发生变化)
所以基本上有几种方法可以从这里继续。例如,它可能是这样的行为:
右键单击属性会打开鼠标所在的上下文菜单,我可以选择其他选项,例如:删除租户、添加租户、收取租金、显示欠租、添加购买者、删除购买者 --- - 当然取决于它是什么类型的属性(property)。
双击一行 => 编辑属性(看看这个截图)
- 它显示了一个我用来添加属性的窗口 - 我可以在该字段中添加所有值,并且该按钮变为“更新属性”
这是一种解决方案,另一种是: - 编辑行的单元格 => 更改属性的值(他们将检查对象并查看是否真的发生了变化,而不仅仅是行值)
这就是我关于如何将功能引入应用程序的最后步骤的想法。
所以这是我的问题:
而且我需要外部意见才能在这个非常有限的任务中更容易和更快地实现。打开现有添加窗口并将其更改为编辑窗口的方式 - 我不想有冗余代码! 或者通过编辑单元格来更改值,以便更改 arraylist 中的值。
我需要一些帮助,了解哪些更简单,哪些更好。
非常感谢这里的任何帮助!
我期待看到一些答案。
编辑 我完成了弹出菜单谢谢你的帮助。我也编辑了问题。
最佳答案
从 jdk5 开始,将 JPopupMenu 附加到组件的推荐方法是
component.setComponentPopupMenu(menu)
当用户手势(鼠标或键盘)被解释为弹出触发器时,此弹出窗口会自动显示 - 这可能因操作系统而异。
关于在右侧选择一行(弹出式触发)mouseEvent:它在 Swing 中不是默认完成的,但现在似乎是(近) native 应用程序(在 vista 上)的规范 - 可以说是在 Swing 中。志愿者报告,任何人 ;-)
关于Java表arraylist修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5861801/