将组合框中的文本对齐添加到表格单元格中

时间:2017-04-18 06:35:40

标签: java javafx

编辑表格列的代码如下

@FXML
private TableView<StateTransition> stateTransitionTable;
@FXML
private TableColumn<StateTransition, Long> stId;
@FXML
private TableColumn<StateTransition, String> stState;
@FXML
private TableColumn<StateTransition, String> stNewState;

private void setTableEditable(Boolean val){

ObservableList<String> list = FXCollections.observableArrayList(workFlowSet);
stState.setCellFactory(ComboBoxTableCell.forTableColumn(new DefaultStringConverter(), list));

}

此代码在表格单元格中给出了组合框,但组合框中的文本位于左侧,我希望文本位于该ComboBoxTableCell的中心。

坚持到这里,帮助我。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用CSS。如果您向Scene添加样式表,请在文件中包含以下内容:

.table-column .combo-box .list-cell {
    -fx-alignment: center;
}

.list-cell是重要的部分(对于不可编辑的ComboBox),我只是放.table-column.combo-box所以不是每个ListCell都在场景中-graph与中心对齐。

查看JavaFX CSS Reference Guide以获取更多CSS信息。

答案 1 :(得分:0)

你可以这样做:

push_back

<强>更新 试试这种方式:

stState.setCellFactory(tableCol -> {
            ComboBoxTableCell<StateTransition, String> comboBoxTableCell = new ComboBoxTableCell<>(new DefaultStringConverter(), list);
           comboBoxTableCell.setAlignment(Pos.CENTER);
           return comboBoxTableCell;
        });