【发布时间】:2020-06-17 17:48:31
【问题描述】:
我有几个类都继承自一个 super 类,需要填充与其类相关的几个 TableViews。
超类是抽象的,一些 getter 和 setter 是最终的,但仍包含填充单元格所需的数据。
为每一列编写一个新的回调类是可行的,但我正在寻找一种方法来实现这一点。
示例代码
class SuperClass
{
protected String name;
protected double value;
public final void setName(String name)
{
this.name = name;
}
public final void getName()
{
return this.name;
}
public final void setValue(double value)
{
this.value = value;
}
public double getValue()
{
return this.value;
}
}
class SubClass1 extends SuperClass
{
private int id;
public void setId(int id)
{
this.id = id;
}
public int getId()
{
return this.id;
}
}
class SubClass2 extends SuperClass
{
private String location;
public void setLocation(String location)
{
this.location = location;
}
}
class SubClass3 extends SuperClass
{
private ObservableMap<SuperClass> map;
public ObservableMap<SuperClass> map()
{
return this.map;
}
}
表格视图
TableColumn<SubClass1, Integer> tc1_id;
TableColumn<SubClass1, String> tc1_name;
TableColumn<SubClass1, Double> tc1_value;
TableColumn<SubClass2, String> tc2_loc;
TableColumn<SubClass2, String> tc2_name;
TableColumn<SubClass2, Double> tc2_value;
TableColumn<SubClass3, String> tc3_name;
TableColumn<SubClass3, Double> tc3_value;
这是我将要做什么的参考... Accessing Subclass properties in a JavaFX TableView ObservableArrayList
但是仅使用示例代码,我基本上是重写了 2 个方法,每个方法 3 次......而且在实际程序中还有更多。 (稍微多一点)
【问题讨论】:
-
您不能在同一个
TableView中使用所有这些列。TableColumn<S,T>只能添加到TableView<S>,因此所有列的第一个类型参数必须相同。 -
tc1 指表 1 -> 列 X tc2 指表 2 -> 列 X tc3 指表 3 -> 列 X
-
那么每个子类对应不同的表?在那种情况下,我不明白你在问什么。
-
没错。 “几个 TableView”
-
在此处解释您的问题(最好使用minimal reproducible example)并请使用 java 命名约定。请注意,此站点不是帮助台,而是社区努力构建知识库、不完整/含糊/不清楚的问题对这项工作没有帮助
标签: javafx java-8 callback tableview