ventanas ventana secundarias pantalla ocultar nueva modal minimizar manejo completa cambiar java javafx scenebuilder

ventana - ¿Por qué el tamaño de la escena de la aplicación JavaFX en ejecución difiere de la vista previa del generador de escenas?



pantalla completa javafx (1)

En SceneBuilder, establezca la Altura máxima y el Ancho máximo en USE_PREF_SIZE . Del mismo modo, también puede establecer los valores mínimos.

Además, para una escena como esta, BorderPane podría ser excesivo. Puede usar fácilmente un StackPane con un VBox o incluso un GridPane.

!! Editar !!

Prueba esto:

<?xml version="1.0" encoding="UTF-8"?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.BorderPane?> <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="180.0" prefWidth="260.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"> <children> <VBox layoutX="45.0" layoutY="37.0" spacing="12.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <children> <TextField fx:id="txtUserName" /> <TextField fx:id="txtPassword" /> <HBox> <children> <Pane HBox.hgrow="ALWAYS" /> <Button fx:id="btnOk" mnemonicParsing="false" text="Button" /> </children> </HBox> </children> <padding> <Insets bottom="18.0" left="18.0" right="18.0" top="18.0" /> </padding> </VBox> </children> </AnchorPane>

Tengo un problema con la vista de la interfaz de usuario de la aplicación en Scene Builder en comparación con la ejecución de uno.

La interfaz de usuario de la aplicación en la vista previa del generador de escenas se ve así:

Cuando se ejecuta la aplicación, se ve así:

Entonces los elementos definitivamente están en diferentes lugares.

FXML:

<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.BorderPane?> <BorderPane prefHeight="242.0" prefWidth="465.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8"> <bottom> <Pane prefHeight="242.0" prefWidth="425.0" BorderPane.alignment="CENTER"> <children> <TextField layoutX="45.0" layoutY="37.0" /> <TextField layoutX="45.0" layoutY="112.0" /> <Button layoutX="337.0" layoutY="178.0" mnemonicParsing="false" text="Button" /> </children> </Pane> </bottom> </BorderPane>

Main.java:

package com.tempapp; import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.scene.layout.Pane; import javafx.fxml.FXMLLoader; public class Main extends Application { @Override public void start(Stage primaryStage) { try { BorderPane root1 = (BorderPane)FXMLLoader.load(getClass().getResource("LoginWindows.fxml")); Scene scene = new Scene(root1); scene.getStylesheets().add(getClass().getResource("LoginWindows.fxml").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); System.out.println("HELLO"); } }

¿Cuál es el motivo por el que la aplicación se ve diferente? Traté de establecer los valores correctos de altura y ancho para escena / escenario, pero no lo soluciona. ¿Esto es causado por la máquina virtual java, debido a una escala de resolución? Mi pantalla es full hd.