lunes, 20 de agosto de 2012
Drag and Drop en JavaFX 2.0
Os pongo un enlace donde hay un ejemplo de como implementar el drag and drop.
http://blog.ngopal.com.np/2011/06/09/draggable-node-in-javafx-2-0/
Un saludo
lunes, 9 de abril de 2012
Editor grafico para JavaFX 2.0
Acabo de ver que Oracle a publicado un editor grafico para JavaFX.
Se puede descargar de aqui.
Cuando pueda le hecho un ojo y os cuento.
Un saludo
domingo, 25 de marzo de 2012
JavaFX 2.0. Vamos a crear una historia. Parte II
import javafx.scene.media.MediaPlayer;import javafx.scene.media.Media;
- Se utilizan dos linas de tiempo. Una que no para nunca que cambia la orientacion de la cabeza y otra que solo funciona cuando se esta hablando y mueve la boca.
- Las transformaciones. Siempre que se pueda se debe utilizar una propiedad (como setRotate) pero su la transformacion que se desea no se puede conseguir con una funcion que ofrece la clase entonces se puede usar transformaciones en forma de matriz(Affine).
viernes, 16 de marzo de 2012
JavaFX 2.0. Vamos a crear una historia. Parte I
Swing es una tecnología fácil y rápida para crear una interfaz grafica de una aplicación. En mi modesta opinión, JavaFX 2.0 ofrece la posibilidad de dar mas potencia a las interfaces graficas que puede ofrecer la tecnología Java. A JavaFX 2.0 lo único que le falta es tiempo de “incrustarse” en el uso cotidiano de los programadores.
Voy a explicar un framework muy sencillo para crear una historia con muñecos. Todo con JavaFX2.0. La idea es que busques una cara que quieres animar, como por ejemplo la de nuestro amigo George:

Recartar la cara con cualquier programa de edicion de imagenes, cortarla en dos partes (superior e inferior) y animarla poniendole voz:
En esta primera parte voy a centrarme en las interfaces; las implementaciones en el siguiente post.
El proyecto lo he creado con Netbeans 7.1. Se debe crear la siguiente estructura de clases:

lunes, 23 de enero de 2012
El lenguaje XML de JavaFX 2.0 . FXML (I) - Paneles
Una escena de JavaFx 2.0 se puede componer como una pantalla de Swing y se puede evitar el uso de código “spaguetti” para ir definiendo los distintos componentes de los paneles que forman una pantalla gracias a FXML.
¿Cómo se usa un fichero FXML? La mejor forma de entender un fichero FXML es verlo como esa clase Java de código “spaguetti” puesta en notación XML. Tomemos como ejemplo la clase MiPantalla.java
public class MiPantalla extends JPanel{
public MiPantalla(){
inicializar();
}
private void inicializar(){
}
}
En una clase de código “spaguetti” MiPantalla si quieres definir un layout para un panel incluyes el import del tipo de layout y lo incluyes en una función
import java.awt.BorderLayout;
public class MiPantalla extends JPanel{
Public MiPantalla(){
inicializar();
}
Private void inicializar(){
setLayout(new BorderLayout());
}
}
Pues esto es prácticamente igual en un fichero FXML:
<?import javafx.scene.layout.AnchorPane?>
Ojo con este paso porque es la dinámica para usar FXML. Cuando se quiere usar una etiqueta nueva lo primero es incluir su “import” correspondiente en la parte superior del fichero XML. Una vez incluida se puede usar la etiqueta en el XML. Y esto es para todos los componentes igual.
Una vez que se incluye un componente en forma de etiqueta de XML también se puede acceder a todas sus propiedades de dicho componente en forma de atributo. Supone que tienes el siguiente código:
…
AnchorPane anchorPane = new AnchorPane();
anchorPane.setId("AnchorPaneId");
…
El equivalente en FXML seria:
<AnchorPane id="AnchorPaneId" prefHeight="500" prefWidth="800" xmlns:fx="http://javafx.com/fxml" fx:controller="es.ejemplo.Control">
</AnchorPane>
Es decir, el nombre del atributo es la función “setXXXX” quitándole el prefijo “set” y cambiando la primera letra a minúscula (ojo que Java es “Case sensitive”).
Respecto a los paneles que se pueden usar en JavaFx 2.0 son AnchorPane, BorderPane, FlowPane, GridPane, HBox, StackPane, TilePane y VBox.
Tambien cabe destacar el atributo fx:controller. Este atributo indica el nombre de la clase donde estarán “mapeados” todos los componentes y todas las acciones de esos componentes para que puedan interactuar con el resto de la aplicación. Esto se verá mejor en los siguientes post cuando se empiece con los componentes.