编辑表格列的代码如下
@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的中心。
坚持到这里,帮助我。
谢谢
答案 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;
});