我有一个TreeTableView,其中Model被定义为:
class Model {
private final Integer _id;
private final String _name;
private final Integer _count;
public Model(int id, String name, int count) {
_id = id;
name = _name;
count = _count;
}
public Integer getId() { return _id; }
public String getName() { return _name; }
public Integer getCount() { return _count; }
}
在 TreeTableView 中,我按名称对行进行分组,如果其子元素的相应字段不相同,则将空值放在标题的字段中。这是一个明确的例子:
td {
width: 50px;
text-align: center;
}

<table border="1">
<tr>
<td>▼</td><td>-</td><td>Apple</td><td>-</td>
</tr>
<tr>
<td></td><td>100</td><td>Apple</td><td>7</td>
</tr>
<tr>
<td></td><td>101</td><td>Apple</td><td>2</td>
</tr>
<tr>
<td></td><td>105</td><td>Apple</td><td>3</td>
</tr>
<tr>
<td>▼</td><td>-</td><td>Apple</td><td>2</td>
</tr>
<tr>
<td></td><td>151</td><td>Apple</td><td>2</td>
</tr>
<tr>
<td></td><td>160</td><td>Apple</td><td>2</td>
</tr>
<tr>
<td></td><td>163</td><td>Apple</td><td>2</td>
</tr>
</table>
&#13;
在第一个展开的行中,第三列是&#34; - &#34; (因为它的子节点对于该列具有不同的值),而第二个扩展行具有&#34; 2&#34;因为它的子列具有该列的相同值。
&#34; - &#34;在Model类中表示为 null (这就是为什么它有整数而不是 int )。
问题在于:当按升序对第3列进行排序时,第一行保持优先,因为它包含的null被认为小于第二个展开行的值 2 ...
我想要的是能够手动选择父节点的最小值和最大值,因此我可以选择其子节点的最小值和最大值。 TreeTableColumn有一个set比较方法,但是那个比较Models,而不是TreeItem。