Я делаю приложение с помощью JavaFX и Scene Builder.
У меня есть основной класс и контроллер, который вызывается из основного класса.
У меня есть кнопка в контроллере с шириной - 45 и высотой - 90
Кнопка переключения переключается в StackPane, а StackPane - в AnchorPane
КакМогу ли я изменить buttonPrefWidth на 25, когда приложение не в полноэкранном режиме, и снова изменить prefWidth кнопки на 45, когда приложение равно в полноэкранном режиме?
Или я могуизменить prefWidth кнопки в соответствии с размером приложения?
Основной класс:
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
try {
Parent root =
FXMLLoader.load(getClass().getResource("/card/resources/fxml/card.fxml"));
Scene scene = new Scene(root, 1600, 600);
primaryStage.setScene(scene);
scene.getStylesheets().add(getClass().getResource("style.css")
.toExternalForm());
primaryStage.initStyle(StageStyle.UNDECORATED);
primaryStage.setMaximized(true);
primaryStage.setResizable(true);
primaryStage.getIcons().add(new Image("card/resources/logo-icon.png"));
primaryStage.show();
//adding resize and drag primary stage
ResizeHelper.addResizeListener(primaryStage);
//assign ALT+ENTER to maximize window
final KeyCombination kb = new KeyCodeCombination(KeyCode.ENTER, KeyCombination.CONTROL_DOWN);
scene.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (kb.match(event)) {
primaryStage.setMaximized(!primaryStage.isMaximized());
primaryStage.setResizable(true);
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
Контроллер:
public class Controller implements Initializable {
@FXML private AnchorPane anchorRow;
@FXML private StackPane hBoxCat0;
@FXML private Button btnPalette;
@FXML
public void initialize(URL location, ResourceBundle resources) {
}
}
РЕДАКТИРОВАТЬ:
@ Slaw это не работает