martes, 18 de mayo de 2010

Añadiendo botones en javaFX

Bueno, sigo indagando poco a poco con javaFX y ahora interactuaremos con el programa, es muy simple pero asi ademas pongo en juego algún concepto nuevo como las variables y como funcionan o los metodos que tienen algunos objetos, el resultado será algo como esto:





Mas simple imposible, lo unico que hago es poner dos botones con los que podemos desplazar nuestro circulo hacia un lado o hacia otro, el código del mismo es este:


/*
* Main.fx
*
* Created on 18-may-2010, 10:44:54
*/

package botones;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.ext.swing.SwingButton;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;

/**
* @author Paco
*/

Stage {
title: "Aplicación con botones"
scene: Scene {
width: 300
height: 80
//Vale vamos a declarar una variable, estas en un principio no tienen un tipo asignado
//el tipo de valor que tendrá dependerá del valor que le asignemos
//declararé un circulo como variable para poder cambiar sus valores mientras se usa el programa
var miCirculo = Circle {
centerX: 100, centerY:50 //Posicion del circulo
radius: 20 //Tamaño del radio
fill: Color.BLACK //Color del circulo
}


content: [
//Vale, pondremos dos botones para poder mover nuestro circulo a la izquierda
//y a la derecha, recuerdo que se puede hacer desde la paleta de netbeans
//algo que es muy comodo
SwingButton {
//Posicion y tamaño del boton
translateX: 0
translateY: 0
width:100
text: "<<" //Texto del boton
//Bien, ahora en action: function() podemos poner lo que queremos que suceda cuando
//pulsemos en el boton
action: function()
{
miCirculo.centerX=miCirculo.centerX-5; //en este caso desplazo el circulo a la izquierda
}
}

//Este botón funciona igual pero para desplazar el circulo en la otra direccion
SwingButton {
translateX: 110
translateY: 0
width:100
text: ">>"
action: function()
{
miCirculo.centerX=miCirculo.centerX+5;
}
}
//Inserto el circulo declarado en la ventana... esto lo hacemos porque si inserto aqui
//un circulo no podria cambiar sus valores pero al tenerlos todos en una variable eso cambia
miCirculo
]
}
}


Estas variables que tenemos que declarar antes del content pueden ser numeros enteros, flotantes, circulos, botones, cadenas de caracteres, etc. Depende de nuestra creativa mente el uso que les queramos dar, comento otra cosa, los objetos que tenemos en el content se dibujaran en ese orden, es decir, en este caso primero el botón <<, después el botón >> y por ultimo el circulo, ¿que quiere decir esto? que si ambos ocupan la misma posición en pantalla el circulo seria el que se veria delante de todos los elementos y el botón << se quedaria detras y por lo tanto invisible e inutilizado.

Para el proximo post intentaré insertar en web el programita que haga con javaFX, ahora mismo netbeans me genera una página html desde la que se accede al programa, asi que no creo que vaya a tener problema para pasar ese codigo al blog y hacer alguna demostración. Hasta otra.

No hay comentarios: