您是否嘗試將ChangeListener添加到列?
column.sortTypeProperty().addListener(new ChangeListener<javafx.scene.control.TableColumn.SortType>() {
@Override
public void changed(final ObservableValue<? extends javafx.scene.control.TableColumn.SortType> observable,
final javafx.scene.control.TableColumn.SortType oldValue, final javafx.scene.control.TableColumn.SortType newValue) {
if (oldValue==javafx.scene.control.TableColumn.SortType.DESCENDING) {
column.sortTypeProperty().set(javafx.scene.control.TableColumn.SortType.ASCENDING);
}
}
});
編輯:因爲上面的代碼不工作(見註釋),我建議如下:
Button columnHeader = new Button("column name");
columnHeader.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
if (column.getSortType()==SortType.DESCENDING) {
column.setSortType(SortType.ASCENDING);
}
}
});
column.setGraphic(columnHeader);
我試圖找到一個解決方案,但我沒有。請讓我們知道你是否發現了黑客! – mrbela