blog de Jose Manuel

JavaFX: Modo Pantalla Completa

Este ejemplo no pertenece a la serie de tutos que planeo realizar sobre JavaFX, es mas como un tip.

Código

import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

/**
 *
 * @author kalt
 */

public class PantallaCompleta extends Application implements EventHandler {
    private Button boton;
    private StackPane panelPila;
    private boolean estaFull = false;
    private Stage escenaPrincipal = null;
   
    @Override
    public void start(Stage escenaPrincipal) {
        this.escenaPrincipal = escenaPrincipal;
       
        panelPila = new StackPane();
        boton = new Button("Pantalla Completa");
        boton.setOnAction(this);
       
        panelPila.getChildren().add(boton);
        Scene escena = new Scene(panelPila, 250, 150, Color.BROWN);
        escenaPrincipal.setScene(escena);
        escenaPrincipal.setTitle("Pantalla Completa");
        escenaPrincipal.show();
    }
    @Override

Iniciando con JavaFX: Hola mundo

Continuando con el post de la instalación de herramientas se viene asomando el clásico hola mundo! Empecemos!

Una aplicacion basica en JavaFX se declara de la siguiente manera:

import javafx.application.Application;
import javafx.stage.Stage;
 
public class HolaMundoJavaFX extends Application {
     
    public static void main(String args[]) {
        Application.launch(args);
    }
    @Override
    public void start(Stage escenaPrincipal) {
        escenaPrincipal.show();
    }    
}

La clase HolaMundoJavaFX hereda de Application y contiene dos métodos. El método main y el método start. Dentro de main se llama al método launch, como buena practica se recomienda que dentro de main solo exista el método launch. El método start recibe un parámetro escenaPrincipal del tipo Stage.
Si ejecutamos la clase obtenemos el siguiente resultado:

Iniciando con JavaFX: Instalación de las herramientas.

Pues como estoy creando mi propio lector de cómics, uno de los consejos de los miembros de la comunidad fue que me adentrara a JavaFX. Y pues me anime, a pesar de que llevo en la mente un comentario de @ezamudio, en el que decía que probáramos Griffon. Aunque vi el podcast por los chavos de ViveCodigo.

Total, que me hice pato y le seguí leyendo sobre JavaFX. Y ya que estamos vamos a ver que se ocupa para iniciar en el desarrollo con JavaFX.
Requisitos:
Instalar el JDK 1.7. Ahora el JDK ya cuenta con JavaFX. Asegúrense de instalarlo también pues son dos instalaciones.
IDE NetBeans 7.1.1 que es la versión que estoy usando. Escogemos la versión que cuenta con el plugin de FX, la mas conveniente es la de 73 MB por ser mas pequeña.
Después de instalar las herramientas (si tienen dudas revisen la documentación respectiva) estamos listos para empezar a desarrollar nuestras aplicaciones.

Creando nuestro proyecto

Visor de imágenes Cómico!: Mejora.

Jajaja, pues como dice el titulo, esta es la versión "mejorada" de mi intento de visor de imágenes. u_u

El proyecto consta (por ahora), de cuatro clases.
Las clases VisorUI, FiltroExtensionArchivo, EjecutarVisor, CrearMiniaturas.

Explicación de las clases.

FiltroExtensionArchivo: Esta clase contiene los tipos de imágenes que pueden ser visualizadas en el visor (redundancia everywhere @_@). Se implementa la clase FileFilter y se sobrescribe el método accept para los tipos de extensión: JPG, PNG, GIF.

CrearMiniaturas: Esta clase implementa Runnable y se sobrescribe el método run. Recibe un JList y un ArrayList<File>, se crean instancias de tipo Image de los File y se obtienen instancias escaladas de la mismas mientras se agregan al modelo del JList.

Aplicando MVC en Java

Hace unos días lei sobre los patrones de diseño y observe que hay muchos, demasiados. Pero también note que uno es usualmente usado en Java y en la web. Es el patrón de diseño MVC o Modelo Vista Controlador. Este me intereso por sus características, en el que separas los mecanismos de el programa en tres partes, de manera que obtienes una abstracción de la funcionalidad de tu/tus aplicaciones.

Estaba tan emocionado, porque como una de las ventajas de este patrón es que, para ciertos eventos o casos específicos puedes reutilizar código sin necesidad de hacer cambios, sobre todo en la funcionalidad. O como dice la teoría, en el Modelo. Dándote la capacidad de utilizarlo en diferentes aplicaciones.

No quiero meter teoría, ya que aquí hay demasiados buenos programadores, así es que nada mas vamos a el ejemplo.

Para ir agarrándole la onda a eso del MVC me hice un problema simple.
Digamos que nos encargan realizar un programa que convierta una cantidad a pesos(MXN) y a Dolares(USD).
Entonces una ves que definí el algoritmo de solución. Que no era mas que  moneda * cantidad
Me dispuse a crear las clases que implementarían el patrón.

Aprende y practica con CodingBat!

Hola chavos y chavas!
Pues surfeando en la red me topé con una página web, se trata de un sitio donde puedes aprender y practicar Java.
¿Aja...? Ah!...
Pos que se me hizo una buena opción para los que van iniciando, me hubiera gustado haberla conocido hace algunas fracciones de años.
¿Que contiene?, ¿Que la hace especial?
Pues de entrada, que es en inglés... Pero no se desanimen!, el contenido está muy bien explicado, con un poco de google traductor y sus años en la secundaria y bachillerato tomando las clases de inglés la arman :O

Aer... ¿Y lo especial?
Eh!, oh, sí, sí, ejem. Lo especial está en que puedes escribir y compilar el código allí mismo :D

Pero de esos sitios ya hay, ¿No?
Si, pos sí, pero, sin contemplar los posibles problemas de los demás sitios, este me agrado porque contiene varios ejemplos, explicaciones y problemas para resolverlos.

Visor de imágenes Cómico!

Pues siendo yo un hombre y como tal debo ser fiel a mis palabras, en este comentario dije algo de lo que ni sabia y no imaginaba que pudiera ser tan complicado realizar un simple visor de imágenes, je! y yo queriendo hacer uno de la calidad de Comix, me dio tanta risa por haber creído que seria sencillo que le nombre Cómico!

Después de la dura y cruda realidad( de que me faltaba aprender muchas cosas para poder hacer lo que yo quería) me dije: "¡Dijiste que lo harías y ahora lo haces!"
Observe y "estudie" varios códigos de la red, principalmente de la API de Java.
De allí y otros lugares olvidados por dios, me dispuse a usarlos para crear la aplicación. El camino fue lento, algo empedrado y con una pendiente un tanto empinada.

Pero bueno, lo intente, encontré varios problemas pero al final pude solucionar la mayoría, uf, ahora recuerdo a mis amigos diciéndome que trabajar frente a la computadora era estar en un trabajo sencillo y fácil...que mentira mas grande.

Practica, Un Menú de operaciones a travéz de métodos.

Hola gente,

me llamo José Manuel y soy un estudiante de ISC, llevo días en la pagina y por fin me decidí a aportar algo para la comunidad.
Si bien es verdad que el código es sencillo y básico es solo una practica a fin de cuentas.
Bueno la cosa se trata de lo siguiente por si aun no me eh explicado correctamente, el programa es totalmente en texto y trata de un menú que contiene
3 diferentes opciones la primera se trata de un método que nos realiza cualquier tabla de multiplicar, la segunda opción nos realiza una sumatoria del numero que le indiquemos, y la tercer opción es para salir del programa.

Veamos a hora el código:

//Programa que realiza operaciones con el uso del switch, for, while y do-while
//con el uso de métodos
import java.io.*;
public class menuopemet {

    public void multi(BufferedReader leer_dato)throws IOException
    {
  int numero, contador=1;
  BufferedReader leer=new BufferedReader(new InputStreamReader(System.in));
     System.out.print("Numero de la tabla que quiere multiplicar: ");
    numero=Integer.parseInt(leer.readLine());

     do{

Distribuir contenido