JavaFX Primeros Pasos
JavaFX Primeros Pasos
JavaFX Primeros Pasos
Norman Carcamo.
Prefacio
Que es JavaFX?
Primeros pasos con JavaFX Aplicaciones de ejemplo
Audiencia
Accesibilidad Documentacin
Documentos relacionados
Convencin Significado
Aplicaciones JavaFX
disponibilidad
Caractersticas principales
Recursos
Aplicaciones JavaFX
Disponibilidad
Caracteristicas Claves
JavaFX Ensemble8
Modena
Descripcin de la
ilustracin modena-
sample.gif
Aplicacin de Ejemplo Descripcin
3D Viewer
..\javafx_samples-8.x-<platform>\javafx-samples-8.x\src
c. Seleccione la muestra que desea ver.
Scene Graph
Graphics System
Web Component
CSS
UI Controls
Layout
Visual Effects
opacidad (Opacity)
Transformaciones (Transforms)
o DirectX 11 en Windows 7
Hilos(Threads)
Actualizar el contenido
Manejar eventos
Para obtener ms informacin sobre cmo trabajar con los layouts, vea
el articulo Trabajo con layouts JavaFX. Para obtener ms informacin
sobre la API Layout JavaFX, consulte la documentacin de la API para
el paquete javafx.scene.layout.
Efectos Visuales
Construya la aplicacin
package holamundo;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
@Override
public void start(Stage stage) {
Button boton = new Button();
boton.setText("Di 'Hola Mundo'");
boton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hola Mundo!");
}
});
stage.setTitle("Hola Mundo!");
stage.setScene(escena);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Estas son las cosas importantes que debe saber acerca de la estructura bsica de una
aplicacin JavaFX:
La clase principal para una aplicacin JavaFX ampla(extends) la clase
javafx.application.Application. El mtodo start() es el principal punto de
entrada para todas las aplicaciones JavaFX.
El nodo raz contiene un nodo hijo, un control de botn con texto, adems de un
controlador de eventos para imprimir un mensaje cuando se pulsa el botn.
La Figura 3-1 muestra el escenario grfico(Scene Graph) para la aplicacin Hello World.
Para obtener ms informacin sobre los escenarios grficos consulte Uso de Scene Graph
de JavaFX.
Donde ir a continuacin:
Esto concluye el tutorial bsico Hello World, pero sigue leyendo para ms lecciones
sobre el desarrollo de aplicaciones JavaFX:
Formas de lujo(Fancy forms) con JavaFX y CSS proporciona trucos de estilo simple
para la mejora de su aplicacin, como agregar una imagen de fondo y los botones
de estilo y texto.
Usando FXML para crear una interfaz de usuario muestra un mtodo alternativo para
crear la interfaz de usuario de inicio de sesin. FXML es un lenguaje basado en
XML que proporciona la estructura para la construccin de una interfaz de usuario
independiente de la lgica de la aplicacin de su cdigo.
Animacin y Efectos Visuales en JavaFX muestra cmo llevar a cabo una aplicacin
a la vida mediante la adicin de animacin, lnea de tiempo y efectos de mezcla.
Creando un formulario en javaFX
Creando el Proyecto
@Override
public void start(Stage primaryStage)
{
primaryStage.setTitle("JavaFX Welcome");
primaryStage.show();
}
btn.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent e)
{
actiontarget.setFill(Color.FIREBRICK);
actiontarget.setText("Sign in button pressed");
}
});
Ejecutando la aplicacin
Con esto concluye el tutorial bsico del Formulario, pero puede seguir
leyendo los siguientes tutoriales sobre el desarrollo de aplicaciones
JavaFX.
Creando el Proyecto
5. Clic en Finalizar .
Los siguientes controles para mejorar son las etiquetas. Usars .label
un estilo de clase, Estilo de etiqueta(Label), que significa que los
estilos afectarn a todas las etiquetas en el formulario. El cdigo es
en el ejemplo 5-3.
Estilo de Textos(Text)
#welcome-text
{
-fx-font-size: 32px;
-fx-font-family: "Arial Black";
-fx-fill: #818181;
-fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.7) , 6, 0.0 , 0 , 2 );
}
#actiontarget
{
-fx-fill: FIREBRICK;
-fx-font-weight: bold;
-fx-effect: dropshadow( gaussian , rgba(255,255,255,0.5) , 0,0,0,1 );
}
En primer lugar, crear el estilo para el estado inicial del botn con
el cdigo en el ejemplo 5-6. Este cdigo utiliza el selector de clase
estilo de botn .button , de manera que si se agrega un botn al
formulario en una fecha posterior, a continuacin, el nuevo botn
tambin utilizar este estilo.
.button
{
-fx-text-fill: white;
-fx-font-family: "Arial Narrow";
-fx-font-weight: bold;
-fx-background-color: linear-gradient(#61a2b1, #2A5058);
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 5, 0.0 , 0 , 1 );
}
.button:hover
{
-fx-background-color: linear-gradient(#2A5058, #61a2b1);
}
La figura 5-5 muestra el estado inicial y hover del botn con su nuevo
fondo azul-gris y blanco negrita.
Donde ir ahora?
Vea lo que puede crear usando CSS. Algunos documentos que le pueden
ayudar a que usted son Decorando aplicaciones JavaFX con CSS, Styling
Grficos con CSS y la Gua de referencia CSS JavaFX. El Skinning con
CSS y la seccin Analizador CSS de la Gua del usuario de JavaFX Scene
Builder tambin proporciona informacin sobre cmo se puede utilizar
la herramienta de escena JavaFX Builder para la carcasa de su diseo
JavaFX FXML.
Vea Estilos en Botones FX con CSS para ver ejemplos de cmo crear
estilos comunes del botn usando CSS.
Usando FXML para crear Interfaces de Usuario
Este tutorial muestra los beneficios del uso de JavaFX FXML, que es un
lenguaje basado en XML que proporciona la estructura para la
construccin de una interfaz de usuario independiente de la lgica de
la aplicacin de su cdigo.
Configurando el proyecto
@Override
public void start(Stage stage) throws Exception
{
Parent root = FXMLLoader.load(getClass().getResource("fxml_example.fxml"));
Scene scene = new Scene(root, 300, 275);
stage.setTitle("FXML Welcome");
stage.setScene(scene);
stage.show();
}
<?import java.net.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<GridPane fx:controller="fxmlexample.FXMLExampleController"
xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
<padding>
<Insets top="25" right="25" bottom="10" left="25"/>
</padding>
</GridPane>
Las lneas siguientes crean un objeto Label con texto User Name: en la
columna 0, fila 1 y un objeto TextField a la derecha del mismo, en la
columna 1, fila 1 . Otra etiqueta y el objeto campo Password: se crean
y se aaden a la red de una manera similar.
<HBox
spacing="10" alignment="bottom_right" GridPane.columnIndex="1" GridPane.rowIndex="4" >
<Button text="Sign In onAction="#handleSubmitButtonAction"/>
</HBox>
package fxmlexample;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.text.Text;
@FXML
protected void handleSubmitButtonAction(ActionEvent event)
{
actiontarget.setText("Sign in button pressed");
}
}
<?language javascript?>
onAction="handleSubmitButtonAction(event);"
<GridPane
xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
<fx:script>
function handleSubmitButtonAction()
{
actiontarget.setText("Calling the JavaScript");
}
</fx:script>
<fx:script source="fxml_example.js"/>
<stylesheets>
<URL value="@Login.css"/>
</stylesheets>
</GridPane>
<GridPane
fx:controller="fxmlexample.FXMLExampleController"
xmlns:fx=http://javafx.com/fxml
alignment="center"
hgap="10"
vgap="10"
styleClass="root"
>
<Text
id="welcome-text"
text="Welcome"
GridPane.columnIndex="0"
GridPane.rowIndex="0"
GridPane.columnSpan="2"
/>
A donde ir ahora?
Ahora que usted est familiarizado con FXML, mire Introduccin a FXML,
que proporciona ms informacin sobre los elementos que componen el
lenguaje FXML. El documento est incluido en el paquete javafx.fxml en
la documentacin de la API.
Configurando el Proyecto
@Override
public void start(Stage primaryStage)
{
Group root = new Group();
Scene scene = new Scene(root, 800, 600, Color.BLACK);
primaryStage.setScene(scene);
primaryStage.show();
}
Agregando Graficos
Este cdigo crea un grupo llamado circles, luego utiliza un bucle for
para aadir 30 crculos a el grupo. Cada crculo tiene un radio de
150px, color de relleno de blanco, y el nivel de opacidad de un 0.5%,
lo que significa que es casi transparente.
Los crculos de color gris con los bordes borrosos aparecen ahora en
la parte superior de un arco iris de colores, como se muestra en la
Figura 7-5.
root.getChildren().add(colors);
root.getChildren().add(circles);
Group blendModeGroup =
new Group(new Group(new Rectangle(scene.getWidth(), scene.getHeight(),
Color.BLACK), circles), colors);
colors.setBlendMode(BlendMode.OVERLAY);
root.getChildren().add(blendModeGroup);
Aadir animacin
0. JRE
1. JDK
2. JavaFX Scene Builder 1.1
3. NetBeans Eclipse(o el IDE que ms te guste).
4. Eclipse(La Versin que prefieras, en este caso
utilice Keppler).
5. e(fx)clipse plugin for eclipse
Sitio web:
http://www.eclipse.org/efxclipse/index.html
Ejemplo:
6. Introduccin a FXML:
http://docs.oracle.com/javase/8/javafx/api/javafx/fxm
l/doc-files/introduction_to_fxml.html