¿Qué tienen todas las palabras de una aplicación javafx significan?

Utilizando el marco de JavaFX, los desarrolladores añadir componentes útiles, visualmente atractivos a sus aplicaciones Java. JavaFX es uno de varios de estos marcos, empezando por el Abstract Windowing Toolkit en 1995 y Java Swing en 1998. La primera versión de JavaFX se remonta a 2008, pero JavaFX se convirtió en un ciudadano de primera clase en la biblioteca estándar de Java con la segunda actualización de Java 7 en 2011.

También en 2011, Oracle lanzó la versión 2 de JavaFX. Esta nueva versión de documentos XML con código Java combined - declara el aspecto de una aplicación con XML y las acciones de una aplicación con código Java. JavaFX utiliza su propio dialecto del lenguaje XML, llamado FXML.

(Si usted se preocupa por los orígenes de acrónimos, XML representa el eXtended Markup Language, y JavaFX probablemente tiene algo que ver con Java “EFF-ECTS especiales”. Por lo tanto, dependiendo de su gusto, FXML representa ya sea FEP-eja eXtended Markup Language o FEP-ECTS Lenguaje de marcado. Elige tu opción.)

Este artículo describe algunos de los nombres que se encuentran en un simple programa de JavaFX. (Tenga en cuenta que esta referencia a “algunos de los nombres” significa “los nombres que pertenecen exclusivamente al mundo de JavaFX” - esto no incluye nombres como Campo de texto y Botón que aparecen en otros entornos de ventanas, y que no incluye nombres como java.lang y principal, los cuales pertenecen a la vainilla tecnologías Java).

Listado 1 contiene código FXML, y el Listado 2 contiene código Java. Al ejecutar estas dos listados como parte de una sola aplicación, se obtiene un programa que saca provecho de las letras en el texto. (En este punto, se podría decir con sarcasmo “Una aplicación que saca provecho de texto? Gran cosa!” Una respuesta apropiada en este caso sería “una aplicación que saca provecho de texto? GRAN COSA!”)

Listado 1: El Root.fxml File

lt;? xml version ="1.0" encoding ="UTF-8"? Gt; lt;? Java.lang import * gt;.? Lt;? Javafx.scene.control import * gt;.? Lt;?. Javafx.scene.layout import * gt;? Lt;AnchorPane prefHeight ="130,0" prefWidth ="198,0"xmlns ="http://javafx.com/javafx/8"xmlns: fx ="http://javafx.com/fxml/1"fx: controlador="application.Main"gt; lt;niñosgt;fx: id ="campo de texto"layoutX="25.0" layoutY="26.0" / Gt;

Listing 2: El Main.java File

paquete de solicitud de importación-javafx.application.Application-importación e importación javafx.event.ActionEvent javafx.fxml.FXML-importación javafx.fxml.FXMLLoader-importación e importación javafx.scene.Parent javafx.scene javafx.scene.Scene-importación. se extiende la clase javafx.stage.Stage-público-control.TextField principal importación Solicitud {principales (args String []) {public static voidlanzamiento(args) -} @ vacío Overridepublic comienzo(Escenario primaryStage) {try {Padre = raíz FXMLLoader.load(GetClass (). GetResource ("Root.fxml")) -Escena = escena nueva escena (raíz, 400, 400) -scene.getStylesheets (). add (getClass (). getResource ("application.css") .toExternalForm ()) - primaryStage.setScene (escena)-primaryStage.espectáculo()-} Catch (Exception e) {e.printStackTrace () -}} @FXMLTextField privada textField- @FXMLprotected void al hacer clic(ActionEvent evento) {textField.setText (textField.getText () toUpperCase ().) -}}

El código FXML

Al igual que todos los documentos XML, el documento en el Listado 1 tiene una elemento raíz - un solo elemento que comienza al principio del documento y termina al final del documento. En el Listado 1, el elemento raíz comienza con

y termina con

Video: SIGNIFICADO REAL DE LOS EMOJIS O CARITAS DE WHATSAPP | CAELI

Las líneas que comienzan con lt ;? (En la parte superior del listado 1) no cuentan como elementos XML.

El AnchorPane como un elemento raíz

Un AnchorPane (O más formalmente, una javafx.scene.layout.AnchorPane) Es un lugar donde las cosas se pueden anclar. Pensar en tratar de poner un botón o un campo de texto en un gran espacio, vacío. sin una AnchorPane, estos componentes flotan de cualquier manera en el interior del espacio. Con un AnchorPane, puede hacer que el borde izquierdo del campo de texto sea exactamente 25,0 píxeles desde el borde izquierdo de la AnchorPane. (Véase el Campo de texto elementos layoutX atribuir en el Listado 1.) Además, con una AnchorPane, puede hacer que el borde superior del campo de texto sea exactamente 26,0 píxeles desde el borde superior de la AnchorPane. (Véase el Campo de texto elementos layoutY atribuyen en el Listado 1.) Lo mismo es cierto para un botón o por cualquier otro componente que se planta en el interior del AnchorPane.

Dentro elemento raíz de un documento FXML, una fx: controlador atributo indica el nombre de Java de la controlador clase - la clase cuyo código realiza las acciones asociadas con la aplicación. En el Listado 1, el nombre de la clase del controlador es application.Main. Y qué casualidad! La clase en el Listado 2 se llama Principal, y está en un paquete llamado solicitud!

Si se piensa en el código FXML como un esbozo, que tiene una partida con subtítulos, y con subtítulos dentro de subtítulos, y así sucesivamente. En el Listado 1, subtítulo primario es AnchorPane. La única subpartida de AnchorPane es niños. Pero niños tiene dos subpartidas de su de propia a saber, Campo de texto y Botón.

El FX: atributo id

los Campo de texto elemento tiene una fx: Identificación atributo. Este atributo le dice cómo encontrar este componente dentro de un cierto código Java. En otras palabras,

dice “para referirse a este widget dentro de la application.Main código Java, utilice el nombre campo de texto.”(Si desea más detalles, mirar adelante a la discusión del código en el Listado 2.)

Usted no tiene que utilizar una palabra descriptiva para identificar un componente. Puedes escribir

Como siempre y cuando utilice la palabra woofinflang consistentemente (haciendo referencia a la palabra woofinflang en su código Java) que irá todo suavemente. Por supuesto, como nombres campo de texto, CampoTexto2 y phoneNumberField son más informativos que los nombres como woofinflang. Así que se mantenga alejado de woofinflangs si le sea posible.

El atributo mnemonicParsing

En el Listado 1, dentro de la Botón elemento, el mnemonicParsing atributo tiene el valor falso. Esta falso valor le dice Java no molestar a establecer una tecla de acceso directo para el botón. Si el valor fuera cierto, se podría añadir un guión bajo al valor del botón de texto atributo:

text ="_Capitalizar"

A continuación, el usuario no tendría que mover el puntero del ratón sobre el botón. Debido a que el guión viene inmediatamente antes de la letra do, presionando Alt + C tendría el mismo efecto que hacer clic en el botón.

El atributo onAction

Un botón de onAction atributo indica Java el nombre del método que se ejecutará cuando el usuario hace clic en el botón. En el Listado 1, el onAction el valor del atributo es #al hacer clic. Esto le indica a Java para llamar a la clase de controlador al hacer clic método cuando el usuario hace clic en el botón. Afortunadamente, la application.Main clase en el Listado 2 tiene una al hacer clic método.

Video: Palabras agudas, graves, esdrújulas y sobresdrújulas

En el Listado 1, el onAction valor es #al hacer clic. Pero en el Listado 2, el nombre del método correspondiente es al hacer clic sin el símbolo de hash. En una de botón onAction atributo, el símbolo de hash (#) No es parte del nombre del método. Pero eso no significa que se puede omitir el símbolo de hash en el documento FXML. Si se omite el símbolo de hash a continuación, cuando intenta ejecutar el programa, aparecerá un mensaje de error feo.

El código Java

La clase en el Listado 2 se extiende la Solicitud clase. Un Solicitud es exactamente lo que usted piensa que es - un montón de código que un usuario puede launch- un programa con un propósito claramente establecidos como “Crear un documento”, “Navegar por la Web” o “encontrar a un compañero”.

Correr y lanzar

Hay al menos dos formas de ejecutar un programa de JavaFX. Una forma es ejecutarlo como una aplicación Java ordinaria. Por ejemplo, en Eclipse, selecciona Ejecutar Como-gt; Java Application.

Al hacer esto, el equipo se inicia la máquina virtual de Java, que a su vez llama al programa de principal método. En el Listado 2, el principal método ejecuta sólo una declaración - una llamada a la lanzamiento método. llamando al lanzamiento método establece ruedas JavaFX de la aplicación se ejecutan en movimiento.

Como alternativa, puede ejecutar código JavaFX preenvasados. Un paquete envasados ​​incluye todo lo que necesita una computadora con el fin de ejecutar una aplicación. Este “todo” incluye código para comprobar si hay una máquina virtual Java en el ordenador del usuario y el código para descargar una máquina virtual de Java si el equipo no tiene ya uno. Cuando preenvase una aplicación JavaFX esta manera, el programa no necesita una principal método. El sistema llama al programa de lanzamiento método automáticamente.

UN .tarro de archivo es como una .cremallera presentar, a excepción de que cada .tarro archivo contiene ciertos elementos específicos a los programas Java. Una de las cosas que puedes poner en una .tarro archivo es una aplicación JavaFX preenvasados.

Cuando se llama a la lanzamiento método, Java responde al hacer llamadas a su solicitud de en eso y comienzo métodos. Usted no ve una en eso método en el Listado 2 debido a que su Principal clase hereda el Solicitud la clase de defecto en eso método. (Eso está bien porque el valor por defecto en eso método no hace nada.)

Cosas dentro de otras cosas

los comienzo método en el Listado 2 crea una Padre. los Padre es el punto de partida de una Escena, y el Escena aparece en una Escenario. He aquí un poco más de detalle:

  • UN Escenario es lo que normalmente se podría llamar una “ventana”.

    Video: Tutorial Java - 4. Cómo usar e implementar Switch, Case, break y default

    Es un área de trabajo rectangular en la pantalla del usuario.

  • UN Escena (También conocido como escenario gráfico) Es un árbol de componentes.

    Por ejemplo, una Escena puede contener dos paneles. El panel de la izquierda contiene dos paneles más pequeños - un panel superior y un panel inferior. El panel superior contiene un botón- el panel inferior contiene un campo de texto. El panel de más a la derecha puede contener una imagen y una etiqueta para la imagen.

    En la aplicación de este artículo, el árbol de componentes es bastante simple. los Escena contiene una AnchorPane que a su vez contiene una Campo de texto y una Botón. (Véase el Listado 1.)

  • UN Padre es el punto de partida para una Escena.

    A pesar de lo que aparece en el punto anterior, una Escena no puede comenzar su vida por tener dos paneles, o por tener dos de nada. Cada Escena comienza con un solo componente, y ese componente debe ser de tipo Padre. Por lo que en aplicación de este artículo, el Escena contiene una Padre, que contiene una AnchorPane, que contiene una Campo de texto y una Botón.

los comienzo método en el Listado 2 se conecta una Padre de los componentes descritos en el Listado 1, asocia una Escena con el Padre, y luego asocia una Escenario con el Escena. Por último, el código de la muestra Escenario con una llamada a la Escenario la clase de espectáculo método.

Si está familiarizado con el diseño de páginas web, puede utilizar las hojas de estilo en cascada (CSS) para describir el aspecto de una escena. En el Listado 2, la llamada a scene.getStyleSheets (). añadir asocia una hoja de estilo con su escena. Si tu .css archivo está en blanco (como lo es en el ejemplo de este artículo), a continuación, llamar scene.getStyleSheets (). añadir no tiene ningún efecto.

Tomando acción

En el Listado 1, la línea

le da una forma de referirse a uno de los componentes en la pantalla del usuario. Así que en el Listado 2, la línea

TextField privada textField-

hace que este campo de texto componente sea un objeto en el código Java.

De nuevo en el Listado 1, del botón onAction atributo indica Java para llamar de la clase del controlador al hacer clic método cuando el usuario hace clic en el botón. Así que en el Listado 2, el al hacer clic método juega con el texto dentro de la campo de texto componente. (Más específicamente, la al hacer clic método obtiene el texto de la campo de texto, capitaliza el texto, y luego se pone el texto en mayúsculas de nuevo en el campo de texto.) Así es como el programa sabe qué hacer cuando el usuario hace clic en el botón.

No siempre se tiene que utilizar palabras como campo de texto. Puede nombrar algo bershmlug siempre y cuando se utiliza el nombre constantemente. En el archivo FXML, se escribe

y en el código Java, se escribe

@FXMLprivate TextField bershmlug-@FXMLprotected vacío onclick (ActionEvent evento) {bershmlug.setText (bershmlug.getText () toUpperCase ()) -.}

los @FXML anotaciones en el Listado 2 son para el control de acceso. Cuando se ejecuta un programa de JavaFX, una cargador agarra su código FXML y la convierte en código Java. (Es “cargas”, el código FXML en su programa.) Con el fin de hacer su trabajo, el cargador debe tener acceso a nombres como campo de texto y al hacer clic en el Listado 2. Pero recuerde: Este cargador no es parte de su propio programa. El cargador pertenece a las bibliotecas estándar de Java.

¿Cómo se puede controlar el acceso a los nombres campo de texto y al hacer clic? modificadores de acceso ordinarias de Java (público, protegido, privado y por defecto) que dejan pocas posibilidades. Con estos modificadores, la única manera de permitir el acceso de un programa externo es declarar campo de texto y al hacer clic ser público. Sin embargo, para muchos desarrolladores, el uso indiscriminado de público el acceso se considera desmañado. Con público acceso, cada clase tiene acceso a campo de texto y al hacer clic. Eso no es realmente lo que quiere un desarrollador JavaFX.

Para resolver este problema, el @FXML anotación proporciona un tipo especial de acceso. En el Listado 2, el campo de texto variable es privado por lo que, normalmente, hay una clase distinta Principal puede acceder a la campo de texto variable. Pero el @FXML anotación otorga privilegio especial al cargador. A diferencia de cualquier otro código, el código del gestor puede hacer referencia a la campo de texto variable. Al compilar y ejecutar el programa, ve el Java @FXML anotación y hace trucos especiales para facilitar el acceso al cargador.

El mismo tipo de cosas es cierto para el al hacer clic método. Sin el @FXML anotación, la onclick protegida método podría ser llamado sólo de las clases en su propio solicitud paquete, y desde subclases de su Principal clase. El cargador no es ninguna de estas cosas. Por lo tanto proporcionar acceso especial por el cargador a su al hacer clic método, el prefacio al hacer clic declaración de método con @FXML.

Artículos Relacionados