Ответ 1
Выравнивание всех столбцов таблицы:
Начиная с 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.
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,
Чтобы применить различные выравнивания к различным столбцам, вам нужно установить ячейку factory для этого столбца. Например, предположим, что 1-й столбец в вашей таблице должен быть выровнен слева, а в других столбцах используется выравнивание по умолчанию таблицы (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;
}
});