gpt4 book ai didi

JavaFX TableView 文本对齐

转载 作者:IT老高 更新时间:2023-10-28 20:46:22 25 4
gpt4 key购买 nike

enter image description here

正如您在图片上看到的,每个列的文本对齐方式设置为左对齐。有什么办法可以改变这个吗?到目前为止,我已经在我的 CSS 文件中尝试过:

#Cols{
text-align: right;
}

我也试过了:

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

有谁知道如何将对齐方式更改为正确的?

最佳答案

所有表格列的对齐方式:

从JavaFX-8开始,可以使用新定义的CSS选择器table-column,

#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,
要将不同的对齐方式应用于不同的列,您需要为该列设置单元工厂。例如,假设表中的第一列应左对齐,而其他列使用表的默认对齐方式(在您的情况下为 CENTER-RIGHT)。

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;
}
});

关于JavaFX TableView 文本对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com