我正在尝试重构一些摆码。目前有两个独立的JTable,每个都有相同的列,除了第二个列有一个额外的列。我们有很多事件监听器连接到每个表中的每一列用于各种目的。
我想做的是这样的事情:
TableColumn column_1_name = new TableColumn();
TableColumn column_2_name = new TableColumn();
...
column_1_name.code_for_adding_listeners_etc()
column_2_name.code_for_adding_some_other_listeners_etc()
...
TableColumnModel model = new TableColumnModel()
model.add(column_1_name);
model.add...
...
TableModel tableModel = ...
JTable table = new JTable(tableModel, model);
通过命名上面的列,我可以将每个列设置为需要设置的位置,然后使用这些命名列创建JTable。它更干嘛那样。但是,上述方式不起作用!它应该......根据javadoc,但无论出于何种原因,表格都不会显示。
请,任何建议和保持摇摆DRY和利用封装或为什么我的方法将无法工作...它让我疯了。它现在的方式(不是它上面的方式)每个JTable几乎相同,需要大量的重复。
答案 0 :(得分:-1)
我认为TableColumn对象根本不是要在不同的表之间共享,因此您无论如何都必须复制它们。 (我现在厌倦了查看文档,如果需要可能会在明天这样做。)
但是,您可以共享生成它们的代码:将它放在一个方法中,该方法返回一个新的TableColumnModel,或者接收一个现有的TableColumnModel并将X列添加到它。然后你只需要调用这个方法两次。