Как исправить изменение ширины столбца в Gridpane при выборе значения в ComboBox в Javafx?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как исправить изменение ширины столбца в Gridpane при выборе значения в ComboBox в Javafx?

Сообщение Anonymous »

У меня есть форма с 4 столбцами - метка, управление, метка, управление. Ширина ярлыка неизвестна. Мне нужно, чтобы этикетки всегда были полностью отображены, что означает, что они не должны быть усечены, поэтому должна измениться только ширина элементов управления. Если возможно, я хочу, чтобы первые и третьи столбцы (те, которые с элементами управления) имели одинаковую ширину. Таким образом, Column1width должна равна Column3width. Но когда я добавил растяжку ComboBox, и в этом ComboBox выбран значение, а затем Column1width! = Column3width. < /P>
Это мой код: < /p>

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»