コンボボックスとテーブルビューがあります。ComboBox アイテムには、テーブルの列名が入ります。コンボボックスのアイテム選択とテーブル列のソートをバインドしたい。例: コンボボックスのインデックス 0 にあるコンボボックスから「名前」という項目を選択すると、テーブルの 0 列目がソートされます。繰り返しますが、テーブル内の列を並べ替えると、comboBox で選択した項目が対応する列名で更新されます。現在、以下のコードを使用して、comboBox アイテムの選択に基づいてテーブル列の並べ替えを実現しています。
private void bindComboBoxAndTableColumnSort() {
ComboBox combo = topComboBarController.getSortCombo();
combo.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> arg0,
Number oldVal, Number newVal) {
System.out.println("oldVal = "+ oldVal + " and newVal = "+ newVal);
TableColumn sortColumn = null;
SortType st = null ;
sortColumn = table.getColumns().get( newVal.intValue() ) ;
st = table.getColumns().get( newVal.intValue() ).getSortType() ;
table.getSortOrder().clear();
if(sortColumn != null){
table.getSortOrder().add(sortColumn);
sortColumn.setSortType(SortType.ASCENDING);
}
}
});
}
誰かがデモ コードを共有できれば、役に立ちます。