JavaFX2的TableView中设有“由用户重新排序列在运行时”。 我想禁用此功能为我的申请一个特定的表。
综观API文档,对于这个没有明显的API钩子。 然而,有中, columns
-属性。 根据该文档,它代表
该TableColumn来作为此TableView中的一部分。 当用户重新排列的TableView列,该列表将被更新以反映当前的视觉顺序。
希望我至少能够重新改变它发生之后,我尝试添加一个监听器,复位后的事实改变。
import javafx.application.Application;
import javafx.collections.ListChangeListener;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;
public class TableTest extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
TableView tableView = new TableView();
tableView.getColumns().setAll(new TableColumn(), new TableColumn());
tableView.getColumns().addListener(new ListChangeListener() {
@Override
public void onChanged(Change change) {
if (change.wasPermutated()){
change.reset();
}
}
});
stage.setScene(new Scene(tableView));
stage.show();
}
}
然而,听者与中止IllegalStateException
,当我问wasPermutated
。
有没有一种方法,以防止重新排序,或者至少恢复它编程?