Aprendiendo JavaFX en JavaPassion
Este año me decidí a aprender cosas no relacionadas directamente con mi trabajo; En este caso estoy jugando con JavaFX, en particular haciendo el curso JavaFX de JavaPassion, dictado por Sang Shin.
El lenguaje se ve interesante, en particular el concepto de ‘binding’ es muy útil ya que todo el código del patron de Swing ‘listeners’ no es necesario.
Para la muestra, un ejercicio del curso en el cual nos piden hacer una vela usando las primitivas gráficas:
/*
* Main.fx
* Candle proyect
* Created on Jan 3, 2010, 12:51:42 PM
*/
package my_javafx_guibasics;
import javafx.scene.effect.Reflection;
import javafx.scene.Group;
import javafx.scene.paint.Color;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.RadialGradient;
import javafx.scene.paint.Stop;
import javafx.scene.Scene;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
/**
* @author josevnz at kodegeek.com
* License: GPL
*/
var totalWidth = 250;
var xCenterForComponents = (totalWidth / 2) - 50; // Sightly aligned to the left
var candleWidth = 50;
var radiousYflame = 35;
var centerYflame = 50;
var flame = Ellipse {
centerX: bind xCenterForComponents
centerY: centerYflame
radiusX: candleWidth * 0.30
radiusY: radiousYflame
fill: RadialGradient {
centerY: 1.0
centerX: 0.5
stops: [
Stop {
offset: 0.2
color: Color.BLUE
},
Stop {
offset: 0.6
color: Color.RED
}
Stop {
offset: 0.9
color: Color.ORANGE
}
]
}
};
var candle = Rectangle {
height: 150
width: candleWidth
translateX: bind xCenterForComponents - (candleWidth /2)
translateY: (radiousYflame + centerYflame) - 4
fill: LinearGradient {
startX: 0.0,
startY: 0.0,
endX: 1.0,
endY: 0.0
stops: [
Stop {
offset: 0.0
color: Color.WHITE },
Stop {
offset: 1.0
color: Color.BLACK
}
]
}
stroke: Color.BLACK
};
var candlePiecesGrp = Group {
content: [
flame,
candle
]
effect: Reflection {
fraction: 0.9
topOpacity: 0.5
topOffset: 3
}
}
Stage {
title: "My JavaFX GUI Basis"
width: totalWidth
height: totalWidth * 2
scene: Scene {
content: candlePiecesGrp
}
}
Pienso ir colocando el código de los ejercicios para quienes lo quieran bajar y jugar (listo para usar en NetBeans), todo GPL.

El curso ya no es gratis. No pienso colocar más enlaces a este contenido, ya que usted debe pagar por el contenido de ahora en adelante.