私は JavaFX と JavaFX Scene Builder でソフトウェアを開発しています。
2 列のグリッド ペインがあります。実際、各セルにはラベルがあります。表の最初の列では、ラベル内のテキストはデフォルトの定数であり、2 番目の列ではテキストを変更できます。
問題は、テキスト変数が長すぎる場合、自動的に切り捨てられることです。
新しい行を開始してテキストをトリミングし、グリッド ペインの行の高さを変更するにはどうすればよいですか?
編集:
@fabian issues のおかげで、これが最初の質問に対する解決策です。中毒では、各要素の fx:id を Scene Builder に設定する必要があります。
@FXML private GridPane gridPane;
@FXML private Text text1;
@FXML private Text text2;
@FXML private Text text3;
private void setGridRowHeight(GridPane gpName, int numRow, double height){
ObservableList<RowConstraints> rows = gpName.getRowConstraints();
rows.get(numRow).setMinHeight(32);
rows.get(numRow).setPrefHeight(height);
rows.get(numRow).setMaxHeight(height);
}
private void addTextListener(final GridPane gridPane, final Text text){
text.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
scrollPane.setFitToHeight(true);
text.setWrappingWidth( gridPane.getColumnConstraints().get(1).getPrefWidth() );
setGridRowHeight(gridPane, gridPane.getRowIndex(text), text.getLayoutBounds().getHeight() );
}
});
}
@FXML public void initialize() {
addTextListener(gridPane, text1);
addTextListener(gridPane, text2);
addTextListener(gridPane, text3);
}