Если я использую только текстовые поля, проблем не возникает. Но когда я добавил растягивающийся список со списком и в этом поле со списком выбрано значение, тогда столбец1Width != столбец3Width.
Это мой код:
Код: Выделить всё
public class NewMain extends Application {
enum Test { FOO, BAR }
@Override
public void start(Stage stage) {
GridPane gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
gridPane.setPadding(new Insets(10));
textFieldRow(gridPane, 0);
textFieldRow(gridPane, 1);
Label label1 = new Label("Label AAAAA BBBBB:");
label1.setMinWidth(Region.USE_PREF_SIZE);
var comboBox = new ComboBox();
comboBox.setItems(FXCollections.observableArrayList(Test.values()));
gridPane.add(label1, 0, 2);
gridPane.add(comboBox, 1, 2);
comboBox.setMaxWidth(Double.MAX_VALUE);
Scene scene = new Scene(gridPane, 600, 200);
stage.setScene(scene);
stage.show();
}
private void textFieldRow(GridPane gridPane, int index) {
Label label1 = new Label("Label AAAAA BBBBB:");
label1.setMinWidth(Region.USE_PREF_SIZE);
TextField textField1 = new TextField();
GridPane.setHgrow(textField1, Priority.ALWAYS);
textField1.setMinWidth(10);
Label label2 = new Label("Label CCCCCC DDDDDD:");
label2.setMinWidth(Region.USE_PREF_SIZE);
TextField textField2 = new TextField();
GridPane.setHgrow(textField2, Priority.ALWAYS);
textField2.setMinWidth(10);
gridPane.add(label1, 0, index);
gridPane.add(textField1, 1, index);
gridPane.add(label2, 2, index);
gridPane.add(textField2, 3, index);
}
public static void main(String[] args) {
launch(args);
}
}
[img]https://i.sstatic.net /AJIaJj8J.gif[/img]
Как видите, вначале все работает хорошо. Ширина столбца 1 равна ширине столбца 3. Однако, когда значение выбрано в ComboBox, столбец 1 становится шире столбца 3.
Может ли кто-нибудь сказать, как это исправить? это?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ombobox-in
Мобильная версия