Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在abstractTableModel上重载getValueAt方法?_Java_Jtable_Abstracttablemodel - Fatal编程技术网

Java 是否可以在abstractTableModel上重载getValueAt方法?

Java 是否可以在abstractTableModel上重载getValueAt方法?,java,jtable,abstracttablemodel,Java,Jtable,Abstracttablemodel,我正在制作一个使用arrayList进行数据填充的JTable。我在arrayList中有两组数据。一个用于一种表类型,另一个用于另一种表类型 我希望做的是在abstractTableModel上重载getValueAt方法,以便它接受我想要的数据集的参数 这是可能的,还是我应该换一种方式来考虑呢?没有人阻止你重载这个方法。只是JTable代码不会调用您的新方法。您必须覆盖常规的公共对象getValueAt(int-rowIndex,int-columnIndex),并根据您的业务逻辑从内部调用

我正在制作一个使用arrayList进行数据填充的JTable。我在arrayList中有两组数据。一个用于一种表类型,另一个用于另一种表类型

我希望做的是在abstractTableModel上重载getValueAt方法,以便它接受我想要的数据集的参数


这是可能的,还是我应该换一种方式来考虑呢?

没有人阻止你重载这个方法。只是
JTable
代码不会调用您的新方法。您必须覆盖常规的
公共对象getValueAt(int-rowIndex,int-columnIndex)
,并根据您的业务逻辑从内部调用另一个方法。

您可以这样做,但问题是Swing组件中当前调用此方法的人不会调用已加载的方法:)

这没有多大用处

在我看来,您基本上有两个选项,因为您需要在两种不同的表类型中显示特定数据:

  • 要么我选择两种不同的表模型,并将所有数据分开
  • 或者另一种方法可能是在模型上有一些特定的标志(新字段),这将指示您在其中使用它的表。这一个可以由setter设置,也可以直接在构造函数中设置,前提是您知道选择哪种类型

但是,从我的观点来看,第一个建议是一个推荐的方式。

< P>没有被接受的答案是错误的,但是也要考虑第二个<代码> TabLimoDele[/Cult],它与第一个共享了对给定的<代码>列表< /代码>的引用。一个
JTable
可以通过调用
setModel()
来显示任一模型

在这种情况下,
EnvDataModel
通过
System.getenv()
获取its数据。
PropDataModel
可以通过
System.getProperties()
获取its数据。两者共享对
系统的访问权限

TableModel first = new EnvDataModel();
TableModel second = new PropDataModel();
JTable table = new JTable(fisrt);
...
table.setModel(second);