Mam aplikację JavaFX, która ma tylko jeden plik FXML. W tym pliku mam jeden AnchorPane, który ma w sobie StackPane. Oto zrzut ekranu:Panel JavaFX wewnątrz panelu Automatyczne zmienianie rozmiaru
Kiedy zacznę tę aplikację, chcę zmienić rozmiar StackPane automatycznie z AnchorPane. A zatem; StackPane automatycznie dostarczy aktualną dostępną szerokość i wysokość. W momencie zmiany rozmiaru aplikacji rozmiar AnchorPane zmienia się automatycznie, ale StackPane pozostaje na swoim stałym rozmiarze.
Jak mogę automatycznie zmienić rozmiar stosu stosów i czy jest on całkowicie rozciągnięty w panelu nadrzędnym?
mój kod
Main.java
package app;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
Scene scene = new Scene(root,800,600);
scene.getStylesheets().add(this.getClass().getResource("/app/style1.css").toExternalForm());
stage.setScene(scene);
stage.show();
}
}
MainController.java
package app;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.StackPane;
public class MainController implements Initializable {
@FXML
private AnchorPane anchorPane;
@FXML
private StackPane stackPane;
@Override
public void initialize(URL url, ResourceBundle rb) {
stackPane.setPrefSize(anchorPane.getPrefWidth(), anchorPane.getPrefHeight()); //didn't work
}
}
Main.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane fx:id="anchorPane" xmlns:fx="http://javafx.com/fxml" fx:controller="app.MainController">
<StackPane fx:id="stackPane" ></StackPane>
</AnchorPane>
style1.css
#anchorPane {
-fx-border-width: 2px;
-fx-border-color: chartreuse;
}
#stackPane {
-fx-border-width: 2px;
-fx-border-color: red;
/* didn't work */
-fx-hgap: 100%;
-fx-vgap: 100%;
}
Czy możesz przyjąć tę odpowiedź. Pozwolą nam wiedzieć, że istnieje rozwiązanie tego problemu. Dobre odkrycia, szukał tego. – blo0p3r
@ blo0p3r Będę, ale na razie system mówi "Możesz zaakceptować własną odpowiedź w ciągu 2 dni";) Mam nadzieję, że pojawi się więcej innych sugestii. –
Witam. po dodaniu przycisku. na przykład. \t \t \t przycisk fx "0.0" id = "button" layoutX = "172,0" layoutY = "195,0" onAction = "# ingresarLogin" prefHeight = "35.0" prefWidth = "87.0" text = "Ingresar" /> \t to jest poprawne? thanksssss –