私はあなたが本当に意味していると思います
TreeTableColumn<String> categoria ;
// ...
treebvItems.getSortOrder().add(categoria);
投稿したコードはコンパイルされないためです。
column にa を設定するComparator
ことにより、特定の列の順序を制御できます。
は、最初の引数が 2 番目の引数の前にある場合は負を返し、 2 番目の引数が最初の引数の前にある場合は正の値を返し、それらが等しい場合は 0を返すメソッドをComparator
定義します。compareTo(String, String)
int
int
したがって、次のようなことができます。
categoria.setComparator((cat1, cat2) -> {
if (cat1.equals(cat2)) {
return 0 ;
}
if ("computers".equals(cat1)) {
return -1 ;
}
if ("computers".equals(cat2)) {
return 1 ;
}
if ("shoes".equals(cat1)) {
return -1 ;
}
if ("shoes".equals(cat2)) {
return 1 ;
}
if ("animals".equals(cat1)) {
return -1 ;
}
if ("animals".equals(cat2)) {
return 1 ;
}
throw new IllegalArgumentException("Unknown categories: "+cat1+", "+cat2);
}
カテゴリの固定セットがある場合は、おそらく のEnum
代わりに を使用する必要があることに注意してくださいString
。の「自然な」順序は、Enum
その宣言順序によって定義されます。