我正在制作一个使用arrayList进行数据填充的JTable。我在arrayList中有两组数据。一种用于一种类型的表,另一种用于另一种类型的表。
我希望做的是重载abstractTableModel上的getValueAt方法,以便它接收我想要的数据集的参数。
这是可能的还是我应该以不同的方式思考这个问题?
答案 0 :(得分:2)
没有人阻止你重载该方法。只是JTable
代码不会调用您的新方法。您将不得不覆盖常规public Object getValueAt(int rowIndex, int columnIndex)
并根据您的业务逻辑从其中调用其他方法。
答案 1 :(得分:0)
你可以这样做,但问题是Swing组件中的任何人当前都不会调用这个方法:)
这不会太有用。
从我的角度来看,您基本上有两个选项,因为您需要以两种不同的表格类型呈现特定数据:
然而,从我的观点来看,第一个是推荐的方式。
答案 2 :(得分:0)
接受的答案没有错,但也要考虑第二个TableModel
与第一个List
分享对给定JTable
的引用。单个setModel()
可以通过简单地调用EnvDataModel
来显示任一模型。
在此exmaple中,System.getenv()
通过PropDataModel
获取其数据。 System.getProperties()
可以通过System
获取其数据。两者都共享对TableModel first = new EnvDataModel();
TableModel second = new PropDataModel();
JTable table = new JTable(fisrt);
...
table.setModel(second);
的访问权限。
{{1}}