【问题标题】:Centering CheckBox on JavaFX TreeTableColumnJavaFX TreeTableColumn 上的居中复选框
【发布时间】:2015-08-08 08:59:32
【问题描述】:

感谢您阅读我的问题。

我正在使用 TreeTableView,并按照this answer 上提出的结果设法在其中一列中显示布尔值。它工作得很好,但是当应用时,复选框有一个 TOP_LEFT 对齐,而不是 CENTER 对齐(CENTER 对齐是在常规 TableView 上使用复选框的默认值):

^ 这是我的 TOP_LEFT 对齐方式

我进行了搜索,但是将对齐方式更改为单元格内容的常规解决方案在这里不起作用,根本没有产生任何结果。

有什么方法可以将对齐方式更改为 CENTER 或 TOP_CENTER?我正在使用 Java8。

编辑更多信息 GUI 是用 FXML 制作的,TreeTableView 位于 TitledPane 中。使用this solution 将文本单元格(同一个表,其他列)居中工作正常。从其他列中删除它不会影响 Checkbox 列

我尝试以两种不同的方式添加复选框,但它们都具有 TOP_LEFT 对齐方式:

colUsable.setCellFactory(CheckBoxTreeTableCell.forTreeTableColumn(colUsable));

还有另一个尝试:

colUsable.setCellFactory(new Callback<TreeTableColumn<MyType,Boolean>,TreeTableCell<MyType,Boolean>>() {
    @Override 
    public TreeTableCell<MyType,Boolean> call( TreeTableColumn<MyType,Boolean> p ) {
        return new CheckBoxTreeTableCell<>(); 
    }
});

非常感谢。

【问题讨论】:

  • 您能提供更多代码吗?您是在代码中还是在 fxml 中做事?表格是否包裹在另一个布局容器中?
  • 您确定没有在某处设置对齐方式?
  • 感谢 NxDx 和 Murat K。刚刚添加了更多信息!
  • 能否提供 CheckBoxTreeTableCell 的完整代码?
  • @NwDx 这是从这里导入的一个类:javafx.scene.control.cell.CheckBoxTreeTableCell 我使用了该类,如我提供的第一个链接的第二个答案中所述。

标签: java checkbox javafx alignment treetableview


【解决方案1】:

我有办法将其居中。 CheckBoxTreeTableCell 类来自 Java8 实现。检查链接以查看文档。我发现改变对齐方式的方法是这样的:

colUsable.setCellFactory(new Callback<TreeTableColumn<MyType,Boolean>,TreeTableCell<MyType,Boolean>>() {
    @Override 
    public TreeTableCell<MyType,Boolean> call( TreeTableColumn<MyType,Boolean> p ) {
        CheckBoxTreeTableCell<MyType,Boolean> cell = new CheckBoxTreeTableCell<MyType,Boolean>();
        cell.setAlignment(Pos.CENTER);
        return cell;
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2019-02-07
    • 2019-10-12
    • 2020-07-02
    相关资源
    最近更新 更多