elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:23  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  [APORTACION] Código base de Splash
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [APORTACION] Código base de Splash  (Leído 973 veces)
Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
[APORTACION] Código base de Splash
« en: 6 Noviembre 2010, 18:26 »

Bueno ahora el código para hacer un splash, para que no hagan en adelante temas para que la gente pregunte sobre eso, es funcional, esta preparado el hilo de la barra, solo tenéis que insertar la ruta de la imagen (la tenéis que insertar en bin en el package[es lo que hago yo] la imagen y si quereís creais una carpeta), configuráis el tamaño de la ventana y lo que quieres que haga el hilo, eso es todo creo y aquí el codigo

Código
import javax.swing.*;
import java.awt.*;
import java.io.File;
/**
*
* @author Afsoon de elhacker para la gente de elhacker y el resto, permito
* su distribución con la acredeticación del autor del código base
*
*/

public class Splash extends JFrame {
private JLabel label;
private Threadbar thread;
private JProgressBar bar;
 
public Splash(){
super("");
defineVentana();
//Here create the new thread
thread = new Threadbar(bar);
//Start Thread
thread.start();
//Here get point x,y where will appear Window
               // This Operations is provided by Darhius elhacker
int x = (int)((java.awt.Toolkit.getDefaultToolkit().getScreenSize().width)- this.getSize().width)/2;
int y = (int)((java.awt.Toolkit.getDefaultToolkit().getScreenSize().height)- this.getSize().height)/2;
//Size and basic
this.setLocation(x, y);
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//Empty the memory
thread = null;
}
 
public void defineVentana(){
this.setLayout(new BorderLayout());
//Image Splash
ImageIcon jpg = new ImageIcon(getClass().getResource(/*Insertar ruta de la imagen*/));
label = new JLabel(jpg);
//Progress
bar = new JProgressBar();
bar.setBorderPainted(true);
bar.setForeground(new Color(0, 0, 55));
bar.setStringPainted(true);
//Add component in the Layout
this.add(label, BorderLayout.CENTER);
this.add(bar, BorderLayout.SOUTH);
}
 
public void showError(Exception e){
System.err.print(e);
}
 
public void pausa(int mSeg){
try
{
Thread.sleep(mSeg);
}catch(Exception e)
{
showError(e);
}
}
 
class Threadbar extends Thread{
 
private JProgressBar bar;
public Threadbar(JProgressBar bar)
{
this.bar = bar;
}
public void run(){
for(int i=0;i <= 100; i++)
{
bar.setValue(i);
pausa(100);
}
}
 
}
 
}
 
 


« Última modificación: 9 Noviembre 2010, 16:10 por Afsoon » En línea
Debci
Moderador
***
Desconectado Desconectado

Mensajes: 1.945


Actualizate o muere!


Ver Perfil WWW
Re: [APORTACION] Código base de Splash
« Respuesta #1 en: 7 Noviembre 2010, 21:41 »

Se agradece el aporte :)

Saludos


En línea

Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: [APORTACION] Código base de Splash
« Respuesta #2 en: 8 Noviembre 2010, 13:15 »

si alguien tiene un algoritmo de centrado de ventanas mas "exacto" porque lo he probado de nuevo ese en otro ordenador y no puede estar mas descentrado, lo edito el archivo y asi esta mejor
En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: [APORTACION] Código base de Splash
« Respuesta #3 en: 8 Noviembre 2010, 22:36 »

si alguien tiene un algoritmo de centrado de ventanas mas "exacto" porque lo he probado de nuevo ese en otro ordenador y no puede estar mas descentrado, lo edito el archivo y asi esta mejor

Hola, es sencillo.
Solo obtienes la dimensión de la pantalla, la dimensión de tú frame, haces algunas operaciones y listo.

Código
       public Splash(){
super("");
defineVentana();
thread = new Threadbar(bar);
thread.start();
this.setSize(400,300);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
java.awt.Dimension frameSize = this.getSize();
int width = (int)screenSize.width - (int)frameSize.width;
int height = (int)screenSize.height - (int) frameSize.height;
int x = width /2;
int y = height/2;
this.setLocation(x, y);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
thread = null;
}
 

Aunque claro, todo eso se puede resumir a esto.

Código
	public Splash(){
super("");
defineVentana();
thread = new Threadbar(bar);
thread.start();
this.setSize(400,300);
int x = (int)((java.awt.Toolkit.getDefaultToolkit().getScreenSize().width)- this.getSize().width)/2;
int y = (int)((java.awt.Toolkit.getDefaultToolkit().getScreenSize().height)- this.getSize().height)/2;
this.setLocation(x, y);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setVisible(true);
thread = null;
}
 

Y mejor aun sin tanto cálculo.

Código
	public Splash(){
super("");
defineVentana();
thread = new Threadbar(bar);
thread.start();
this.setSize(400,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setVisible(true);
thread = null;
}
 

Un saludo.

Citar
int widht = (int) d.getWidth()/4;
PD. es width, no widht.  :xD

« Última modificación: 8 Noviembre 2010, 22:40 por Darhius » En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines