Всем привет!
Впервые пишу на JavaFX, еще многие вещи не изучил, на данный момент возникла такая проблема:
Имеется fxml документ данного вида:
Необходимо, чтобы при выборе radio клавиши "NO", данные поля скрывались, при "YES" соответственно отображались. В fxml документе они положены на AnchorPane. То есть пытался скрывать просто его. Но работало не точно.
<AnchorPane fx:id="additionalPane" layoutX="139.0" layoutY="346.0" prefHeight="137.0" prefWidth="639.0">
<children>
<TextField fx:id="needsSpecialtyField" layoutX="149.0" layoutY="14.0" prefHeight="31.0" prefWidth="341.0" promptText="Necessary specialty" />
<TextField fx:id="educationField" layoutX="149.0" layoutY="55.0" prefHeight="31.0" prefWidth="341.0" promptText="Education" />
<TextField fx:id="expirienceField" layoutX="149.0" layoutY="96.0" prefHeight="31.0" prefWidth="341.0" promptText="Expirience" />
</children>
</AnchorPane>
Пробовал в классе-контроллере в методе инициализации указать параметр setVisible(false/true)
, по типу:
if (yesRadioButton.isSelected()) {
yesRadioButton.setOnAction(event -> {
additionalPane.setVisible(true);
});
}
if (noRadioButton.isSelected()) {
noRadioButton.setOnAction(event -> {
additionalPane.setVisible(false);
});
}
Но в данном случае, при старте программы по умолчанию стоит выбор "NO", но панель открыта, при переключение на "YES" и обратно на "NO" панель скрывается, но дальнейшие нажатия на "YES" не отображают панель.
Radio клавиши объеденины в ToggleGroup:
ToggleGroup group = new ToggleGroup();
yesRadioButton.setToggleGroup(group);
noRadioButton.setSelected(true);
noRadioButton.setToggleGroup(group);
Как решить данную проблему?
При инициализации независимо от состояния radiobutton нужно привязаться к событиям изменения их состояния. Поэтому оба setOnAction
нужно вынести из условий, и отдельно установить начальное состояние видимости панели:
yesRadioButton.setOnAction(event -> {
additionalPane.setVisible(true);
});
noRadioButton.setOnAction(event -> {
additionalPane.setVisible(false);
});
additionalPane.setVisible(yesRadioButton.isSelected());
А вообще можно то же самое сделать одной строкой:
additionalPane.visibleProperty().bind(yesRadioButton.selectedProperty());
Т.е. свойство видимости панели связать со свойством состояния yesRadioButton
, тогда при изменении состояния yesRadioButton
будет автоматически меняться состояние видимости панели.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В общем, в потоке JavaFX у меня запускаются два других потока Server и ClientСоответственно нужно как-то в клиент из потока JavaFX передать параметр writeObject,...
Собственно, ошибка, как у всех, делаю как в ответах здесь, но работает неправильно
Я разобрался как загружать файл в bucket aws s3, научился его скачивать в директорию на компьютереНо не могу понять каким способом загружать файлы...