Possiedo un'applicazione JavaFX con un solo file FXML. In questo file ho un AnchorPane che ha uno StackPane al suo interno. Ecco lo screenshot:Pannello JavaFX all'interno del ridimensionamento automatico del pannello
Quando inizio a questa applicazione, voglio ridimensionare automaticamente StackPane con l'AnchorPane. Così; StackPane otterrà automaticamente la larghezza e l'altezza disponibili. Nel momento in cui ridimensiono l'applicazione, AnchorPane viene ridimensionato automaticamente ma StackPane rimane come dimensione fissa.
Come è possibile ridimensionare lo StackPane automaticamente e renderlo completamente allungato all'interno del relativo pannello padre?
My Code
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%;
}
Puoi accettare questa risposta. Ci permetterà di sapere che esiste una soluzione a questa domanda. Buoni risultati, cercavo questo. – blo0p3r
@ blo0p3r Lo farò ma per ora il sistema dice "Puoi accettare la tua risposta in 2 giorni";) Speriamo che arrivino altri suggerimenti. –
Ciao. come un pulsante è aggiunto. per esempio. \t : id = "button" layoutX = "172.0" layoutY = "195.0" onAction = "# ingresarLogin" prefHeight = "35,0" prefWidth = "87.0" text = "Ingresar" /> \t è corretto ?? thanksssss –