所有表格列的对齐方式:
从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;
}
});