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