Buscador

jueves 19 de noviembre de 2009

Cómo crear un Splash Screen o Ventana de Bienvenida [GUI en Java]

15 comentarios

GUI en Java
Hola amigos amadores de la programación en Java, en esta oportunidad quiero compartir con ustedes la manera sencilla de hacer un splash screen. ¿Que es eso? se preguntaran, bueno un Splash Screen es una Ventana de Bienvenida a nuestra Aplicacion, esta ventana no tiene los controles clasicos de cerrar, maximisar y minimizar, ademas se le puede incluir una barra de progreso para mostrarse mientras carga en memoria nuestra Aplicación.


En este ejemplo Mi Aplicación se trata de un "Software para la teoria de Grafos".
Splash Screen en java

A continuación les dejo con el Código espero que les sea de utilidad para mejorar la presentación de sus entregables.


package GUIs;

import java.awt.*;
import javax.swing.*;


public class VentanaSplash {
//Componente en donde colocamos la Imagen Splash
private JLabel splashLabel;
//Progreso de Barra
private JProgressBar progreso;
//Ventana del SPlash
private JWindow splashScreen;

//Ventana de Trabajo
private VentPrincipal ventana;

public VentanaSplash()
{
crearSplashScreen();
// arrancar el splash
splashScreen.setVisible(true);

//iniciar progreso
hiloProgreso hilo=new hiloProgreso();
hilo.start();

//Crear Ventana de Trabajo
ventana=new VentPrincipal();
// mostrar cuando termine de cargar en memoria
ventana.setVisible(true);
//cerrar el Splash
splashScreen.setVisible(false);

//liberar Splash de memoria
splashScreen=null;
hilo=null;
}

public void crearSplashScreen()
{
//dimension del escritorio
Dimension screenRect =Toolkit.getDefaultToolkit().getScreenSize();
//Inicializa "splashLabel" con la ruta de la Imagen Splash
splashLabel=new JLabel(new ImageIcon("images/splash2.jpg"));
//Inicializa el Progreso
progreso=new JProgressBar();
progreso.setBorderPainted(true);
progreso.setForeground(new Color(50,50,153,100));
// Mostrar el valor de avance
progreso.setStringPainted(true);
splashScreen = new JWindow();

//Posiciona Aprox. en el Centro del Escritorio
splashScreen.setLocation(screenRect.width/4+30, screenRect.height/4);
splashScreen.setLayout(new BorderLayout());
splashScreen.add(splashLabel,BorderLayout.CENTER);
splashScreen.add(progreso,BorderLayout.SOUTH);
//empaqueta todo
splashScreen.pack();
}

public void pausa(int mlSeg)
{
try{// pausa para el splash
Thread.sleep(mlSeg);
}catch(Exception e){}
}

//Hilo del Progreso
class hiloProgreso extends Thread
{
public hiloProgreso()
{
super();
}
public void run()
{
for(int i=1;i<=100;i++)
{
progreso.setValue(i);
pausa(5);
}
}

}

public static void main(String[] args)
{
//JFrame.setDefaultLookAndFeelDecorated(false);
new VentanaSplash();
}
}

miércoles 18 de noviembre de 2009

Cómo cambiar el Aspecto de la interfaz gráfica en Java [LookAndFeel]

1 comentarios

cambiar el Aspecto de la interface grafica en JavaHola mi gente, aquí de nuevo para mostrarles lo fácil que es cambiar de aspecto a nuestra interfaz gráfica en Java (LookAndFee). Como sabemos Java maneja su propia API de GUI hecho en C y es multiplataforma, es decir su aspecto es la misma en cualquier sistema operativo.
En este post le mostrare los diferentes aspectos que proporciona Java, aunque también puedes crear tu propio LookAndFeel personalizado, lo cual explicaremos en otro post.

1. Interfaz del sistema Local
import javax.swing.*;
import javax.swing.UIManager;

public class PruebaVentana extends JFrame {

public PruebaVentana() {
// Aqui inicializa todos los controles que desee
}

// fragmento de codigo para la interfaz grafica
static
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

//aplicar sonido a la interfaz
UIManager.put("AuditoryCues.playList",UIManager.get("AuditoryCues.allAuditoryCues"));
}
catch (Exception e) {}
}

public static void main(String args[]) {
new PruebaVentana();
}
}

WindowsLookAndFeel

2. Interfaz Nativa del API de Java
import javax.swing.*;
import javax.swing.UIManager;

public class PruebaVentana extends JFrame {

public PruebaVentana() {
// Aqui inicializa todos los controles que desee
}

// fragmento de codigo para la interfaz grafica
static
{
try
{
JFrame.setDefaultLookAndFeelDecorated(true);
//aplicar sonido a la interfaz
UIManager.put("AuditoryCues.playList",UIManager.get("AuditoryCues.allAuditoryCues"));
}
catch (Exception e) {}
}

public static void main(String args[]) {
new PruebaVentana();
}
}

DefaultLookAndFeelDecorated

3. MetalLookAndFeel
import javax.swing.*;
import javax.swing.UIManager;

public class PruebaVentana extends JFrame {

public PruebaVentana() {
// Aqui inicializa todos los controles que desee
}

// fragmento de codigo para la interfaz grafica
static
{
try
{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
//aplicar sonido a la interfaz
UIManager.put("AuditoryCues.playList",UIManager.get("AuditoryCues.allAuditoryCues"));
}
catch (Exception e) {}
}

public static void main(String args[]) {
new PruebaVentana();
}
}


metalLookAndfee

4. MotifLookAndFeel
import javax.swing.*;
import javax.swing.UIManager;

public class PruebaVentana extends JFrame {

public PruebaVentana() {
// Aqui inicializa todos los controles que desee
}

// fragmento de codigo para la interfaz grafica
static
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
//aplicar sonido a la interfaz
UIManager.put("AuditoryCues.playList",UIManager.get("AuditoryCues.allAuditoryCues"));
}
catch (Exception e) {}
}

public static void main(String args[]) {
new PruebaVentana();
}
}

MotifLookAndFeel

Bueno espero que les halla servido.

jueves 5 de noviembre de 2009

Cómo invertir los elementos de un arreglo [Código en Java]

0 comentarios

Hola gente programadora, aquí les muestro un nuevo post esperando que les sirva para enriquecer sus conocimientos.
El invertir los elementos de un arreglos es sumamente sencillo, solo recorremos el arreglo de
De izquierda a derecha hasta la mitad y de derecha a izquierda también hasta la mitad
Intercambiando la posición de los valores del arreglo.

Arreglo inicial



Arreglo invertido

A continuacion muestro el codigo fuente.
clase invertir arreglo
package arreglos;

import javax.swing.JOptionPane;
/**
*
* @author Robert
*/

public class invertirArreglo {

public void ingresoVector(float[]V,int n){
int i,j;
float numero;
String cadena;
for(i=0;i<n;i++)
{ //ingresamos el numero en forma de cadena
cadena=JOptionPane.showInputDialog(null,"ingrese valores");
//convertimos la cadena a entero
numero=Integer.parseInt(cadena);
V[i]=numero;
}

}
void invertirArreglo(float []V,int n)
{
int i,j;
float temp;
for(i=0,j=n-1;i<n/2;i++,j--)
{
temp=V[i];
V[i]=V[j];
V[j]=temp;
}
}
public void veporteVector(float vector[],int n){

String cad="";
for(int i=0;i<n;i++)
{
cad="\n";
cad+=" "+vector[i];
System.out.println(cad);
}
}
}

A continuación les presento la clase principal,donde llamaremos los metodos que dan solucion al problema

package arreglos;

import javax.swing.JOptionPane;

/**
*
* Robert
*/
public class principal {
public static void main(String[] args) {
// TODO code application logic here
invertirArreglo IV=new invertirArreglo();
float V[] ;
String cadena;
int numero;
cadena=JOptionPane.showInputDialog(null,"ingrese tamaño del arreglo");
numero=Integer.parseInt(cadena);
V=new float [numero];
IV.ingresoVector(V, numero);
IV.veporteVector(V, numero);
System.out.println("vector inevertido");
IV.invertirArreglo(V, numero);
IV.veporteVector(V, numero);
}

}