Buscar..


Introducción

JavaFX Scene Builder es una herramienta de diseño visual que permite a los usuarios diseñar rápidamente interfaces de usuario de aplicaciones JavaFX, sin codificación. Se utiliza para generar archivos FXML.

Observaciones

JavaFX Scene Builder es una herramienta de diseño visual que permite a los usuarios diseñar rápidamente interfaces de usuario de aplicaciones JavaFX, sin codificación. Los usuarios pueden arrastrar y soltar los componentes de la interfaz de usuario a un área de trabajo, modificar sus propiedades, aplicar hojas de estilo y el código FXML para el diseño que están creando se genera automáticamente en el fondo. El resultado es un archivo FXML que luego puede combinarse con un proyecto Java vinculando la interfaz de usuario a la lógica de la aplicación.

Desde una perspectiva de Model View Controller (MVC):

  • El archivo FXML, que contiene la descripción de la interfaz de usuario, es la vista.
  • El controlador es una clase Java, que implementa opcionalmente la clase Initializable, que se declara como el controlador para el archivo FXML.
  • El modelo consta de objetos de dominio, definidos en el lado de Java, que se pueden conectar a la vista a través del controlador.

Instalación de Scene Builder

  1. Descargue la versión más reciente de Scene Builder del sitio web de Gluon, seleccionando el instalador para su plataforma o el archivo ejecutable.

  2. Con el instalador descargado, haga doble clic para instalar Scene Builder en su sistema. Se incluye un JRE actualizado.

  3. Haga doble clic en el icono de Scene Builder para ejecutarlo como una aplicación independiente.

  4. Integración IDE

    Si bien Scene Builder es una aplicación independiente, produce archivos FXML que se integran con un proyecto Java SE. Al crear este proyecto en un IDE, es conveniente incluir un enlace a la ruta de Scene Builder, para poder editar los archivos FXML.

    • NetBeans: en Windows vaya a NetBeans-> Herramientas-> Opciones-> Java-> JavaFX. En Mac OS X vaya a NetBeans-> Preferencias-> Java-> JavaFX. Proporcione el camino para el Hogar de creadores de escenas. Ruta del generador de escenas - NetBeans
    • IntelliJ: En Windows, vaya a IntelliJ-> Configuración-> Idiomas y marcos-> JavaFX. En Mac OS X vaya a IntelliJ-> Preferencias-> Idiomas y marcos-> JavaFX. Proporcione el camino para el Hogar de creadores de escenas. Ruta del generador de escenas - IntelliJ
    • Eclipse: en Windows vaya a Eclipse-> Ventana-> Preferencias-> JavaFX. En Mac OS X vaya a Eclipse-> Preferencias-> JavaFX. Proporcione el camino para el Hogar de creadores de escenas. Ruta del generador de escenas - Eclipse

Un poquito de historia

El proyecto Scene Builder fue creado usando JavaFX por Oracle y es de código abierto dentro del proyecto OpenJFX.

Oracle proporcionó los binarios, hasta Scene Builder v 2.0, que incluía solo las funciones de JavaFX antes del lanzamiento de Java SE 8u40, por lo que no se incluyen las nuevas funciones como los controles Spinner .

Gluon se hizo cargo de la distribución de versiones binarias, y se puede descargar un Scene Builder 8+ actualizado para cada plataforma desde aquí .

Incluye los últimos cambios en JavaFX y también las mejoras y correcciones de errores recientes.

El proyecto de código abierto se puede encontrar aquí donde se pueden crear problemas, solicitudes de características y solicitudes de extracción.

Los archivos binarios heredados de Oracle todavía se pueden descargar desde aquí .

Tutoriales

Los tutoriales de Scene Builder se pueden encontrar aquí:

Los tutoriales de FXML se pueden encontrar aquí.

Controles personalizados

Gluon ha documentado completamente la nueva función que permite importar frascos de terceros con controles personalizados, utilizando el Administrador de biblioteca (disponible desde Scene Builder 8.2.0).

Gerente de biblioteca

SO preguntas

Etiquetas relacionadas con SceneBuilder

Proyecto JavaFX básico usando FXML

Este es un proyecto básico que utiliza FXML, creado con NetBeans (Nuevo proyecto -> JavaFX -> Aplicación JavaFX FXML). Contiene solo tres archivos:

Clase de aplicación principal

package org.stackoverflow;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class BasicApplication extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("BasicFXML.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Archivo 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 id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.stackoverflow.BasicFXMLController">
    <children>
        <Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
        <Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
    </children>
</AnchorPane>

Controlador

package org.stackoverflow;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class BasicFXMLController {

    @FXML
    private Label label;

    public void initialize() {
        // TODO
    }   

    @FXML
    private void handleButtonAction(ActionEvent event) {
        label.setText("Hello World!");
    }

}

correr

La construcción y ejecución del proyecto debe mostrar una pequeña ventana con un botón que se puede hacer clic:

Ejecuta el proyecto

Cómo funciona

Brevemente, en la clase de aplicación principal, el FXMLLoader cargará el basicFXML.fxml desde el jar / classpath, según lo especificado por FXMLLoader.load(getClass().getResource("BasicFXML.fxml")) .

Al cargar basicFXML.fxml , el cargador encontrará el nombre de la clase del controlador, como lo especifica fx:controller="org.stackoverflow.BasicFXMLController" en el FXML.

Luego, el cargador creará una instancia de esa clase, en la que intentará inyectar todos los objetos que tienen un fx:id en el FXML y están marcados con la anotación @FXML en la clase del controlador.

En este ejemplo, el FXMLLoader creará la etiqueta basada en <Label ... fx:id="label"/> , e inyectará la instancia de la etiqueta en la @FXML private Label label; .

Finalmente, cuando se haya cargado todo el FXML, FXMLLoader llamará al método de initialize del controlador, y se ejecutará el código que registra un controlador de acción con el botón.

Edición

Si bien el archivo FXML se puede editar dentro del IDE, no se recomienda, ya que el IDE proporciona solo la comprobación de sintaxis básica y el autocompletado, pero no la guía visual.

El mejor enfoque es abrir el archivo FXML con Scene Builder, donde todos los cambios se guardarán en el archivo.

Se puede iniciar Scene Builder para abrir el archivo: Icono de Scene Builder

O el archivo se puede abrir con Scene Builder directamente desde el IDE:

  • Desde NetBeans, en la pestaña del proyecto, haga doble clic en el archivo o haga clic derecho y seleccione Open .
  • Desde IntelliJ, en la pestaña del proyecto, haga clic con el botón derecho en el archivo y seleccione Open In Scene Builder .
  • Desde Eclipse, en la pestaña del proyecto, haga clic con el botón derecho en el archivo y seleccione Open with Scene Builder .

Editar archivo con Scene Builder

Si Scene Builder está correctamente instalado y su ruta se agrega al IDE (ver Comentarios a continuación), abrirá el archivo:

FXML editado con Scene Builder

Se pueden hacer cambios arrastrando nuevos contenedores o nuevos controles desde los paneles de la izquierda, y las propiedades y los valores de diseño se pueden cambiar en los paneles de la derecha.

Tenga en cuenta que una de las etiquetas de identificación que permite inyectar el FXML en el código de Java es fx:id . Se puede configurar en el panel de Code :

Configuración de fx: id

Después de aplicar los cambios, guarde el archivo (Scene Builder -> File -> Save). Si se realizan cambios en la edición del archivo desde el IDE, al guardar el archivo, se actualizarán en Scene Builder.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow