当前位置: 首页 > 知识库问答 >
问题:

JavaFX TableView文本对齐

康烨伟
2023-03-14

如图所示,每个列的文本对齐方式设置为左对齐。有没有办法改变这一点?到目前为止,我已经在CSS文件中尝试了:

#Cols{
    text-align: right;
}

我也尝试过:

#Cols{
    -fx-text-alignment: right;
}

有人知道如何将对齐更改为右吗?

共有3个答案

端木志诚
2023-03-14

即使这是两年前的事,这里还有另一个答案。对于每个表列都存在一个默认的css样式类. table-列,因此如果您想更改整个表列以证明居中正确,则只需将其放在样式表或内联样式中:

.table-column {
  -fx-alignment: CENTER_RIGHT;
}

如果有一列应该以其他方式对齐,如行标题,则完全没有问题,请将id附加到此列,如行标题,并以样式表或内联样式写入:

#rowHeading {
  -fx-alignment: CENTER_LEFT;
}

它应该位于左中心。无需大量编码。

隆钊
2023-03-14

快速修复方法是在SceneBuilder中选择列,然后将属性添加到样式字段中

雍河
2023-03-14

从JavaFX-8开始,您可以使用新定义的CSS选择器表列,

#my-table .table-column {
  -fx-alignment: CENTER-RIGHT;
}

对于JavaFX-2,要实现这一点,请定义CSS选择器:

#my-table .table-cell {
    -fx-alignment: CENTER-RIGHT;
     /* The rest is from caspian.css */

    -fx-skin: "com.sun.javafx.scene.control.skin.TableCellSkin";
    -fx-padding: 0.166667em; /* 2px, plus border adds 1px */

    -fx-background-color: transparent;
    -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
    -fx-border-width: 0.083333em; /* 1 */
    -fx-cell-size: 2.0em; /* 24 */
    -fx-text-fill: -fx-text-inner-color;
}

并设置tableview的id。

tableView.setId("my-table");

从JavaFX-8开始,您可以将样式直接应用于TableColumn,

firstTextCol.setStyle( "-fx-alignment: CENTER-RIGHT;");

或使用css,

firstTextCol.getStyleClass().add( "custom-align");

在哪里

.custom-align { 
  -fx-alignment: center-right; 
} 

对于JavaFX-2,要对不同的列应用不同的对齐方式,需要为该列设置单元格工厂。例如,假设表格中的第一列应向左对齐,而其他列则使用表格的默认对齐方式(在您的情况下为“居中-右对齐”)。

firstTextCol.setCellFactory(new Callback<TableColumn, TableCell>() {
            public TableCell call(TableColumn p) {
                TableCell cell = new TableCell<Person, String>() {
                    @Override
                    public void updateItem(String item, boolean empty) {
                        super.updateItem(item, empty);
                        setText(empty ? null : getString());
                        setGraphic(null);
                    }

                    private String getString() {
                        return getItem() == null ? "" : getItem().toString();
                    }
                };

                cell.setStyle("-fx-alignment: CENTER-LEFT;");
                return cell;
            }
        });
 类似资料:
  • 我创建了一个TableView,其中包含一个复选框列(isSelected)和三个信息列(姓名、姓氏、职务)。我想根据用户信息禁用一些复选框。例如,如果用户名为“Peter”,则Peter旁边的复选框将被禁用。但我不能。以下是我的一些代码: 人JAVA 控制器。JAVA

  • 本文向大家介绍iOS对齐文本,包括了iOS对齐文本的使用技巧和注意事项,需要的朋友参考一下 示例 Swift Objective-C            

  • 问题内容: 我需要说明一些文本(RTL),这是来自服务器的字符串()。但是a 不能证明文本的正确性,因此我必须使用a ,现在必须创建一个HTML文件,其中将显示。然后,我将该html文件的地址存储在数据库中,然后显示该html文件。我曾经在SO上看到过这个问题,并且很多人建议使用3rd party库,但我尝试了所有这些方法,但都无济于事(它们在90%的场景中都有效,但并不完全可靠)。 我觉得这种方

  • 文本对齐 水平对齐textAlign context.textAlign="center|end|left|right|start"; 其中各值及意义如下表。 值 描述 start 默认。文本在指定的位置开始。 end 文本在指定的位置结束。 center 文本的中心被放置在指定的位置。 left 文本左对齐。 right 文本右对齐。 我们通过一个例子来直观的感受一下。 <!DOCTYPE ht

  • 我一直在尝试编辑PDF文档以预填充表单条目。我让它(某种程度上)起作用了。我添加的文本很好。然而,已经存在的其他文本似乎已被替换为“ 救命啊!

  • 问题内容: 目标:纯Canvas上的Android> = 1.6。 假设我想编写一个函数,该函数将绘制一个(宽度,高度)大的红色矩形,然后在其中绘制一个黑色的 Hello World 文本。我希望文本在视觉上位于矩形的中心。因此,让我们尝试: 现在,我不知道要在drawText的参数中加上标记的内容,即我不知道如何垂直对齐文本。 就像是 ???? = topLeftY + height / 2 +