enfim criei um splashScreen que inicia em paralelo ao sistema, e mostra os dados carregando e com barra progress que passa enquanto os dados sao lidos
SplashScreen.java
import db.ConnEmprestimos;
import db.Emprestimos;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;
import org.netbeans.lib.awtextra.AbsoluteConstraints;
import org.netbeans.lib.awtextra.AbsoluteLayout;
/**
*
* @author vielmond
*/
public class SplashScreen extends JWindow implements Runnable{
AbsoluteLayout Absoluto;
AbsoluteConstraints absimage,AbsBarra,AbsLabel2,AbsLabel3,AbsLabel4,AbsLabel5,AbsLabel6;
ImageIcon image;
JLabel jlabel,jlabel2,jlabel3,jlabel4,jlabel5,jlabel6;
JProgressBar barra;
private int value;
public SplashScreen(){
Absoluto = new AbsoluteLayout();
absimage = new AbsoluteConstraints(0, 0);
AbsBarra = new AbsoluteConstraints(14,3);
AbsLabel2 = new AbsoluteConstraints(600,3);
AbsLabel3 = new AbsoluteConstraints(405,350);
AbsLabel4 = new AbsoluteConstraints(14,20);
AbsLabel5 = new AbsoluteConstraints(14,40);
AbsLabel6 = new AbsoluteConstraints(14,60);
//cria objetos
jlabel = new JLabel();
jlabel2 = new JLabel();
jlabel3 = new JLabel();
jlabel4 = new JLabel();
jlabel5 = new JLabel();
jlabel6 = new JLabel();
barra = new JProgressBar();
barra.setPreferredSize(new Dimension(400,15));
this.getContentPane().setLayout(Absoluto);
this.getContentPane().add(barra,AbsBarra);
jlabel3.setText("Desenvolvido por: Vielmond Informática");
this.getContentPane().add(jlabel2,AbsLabel2);
this.getContentPane().add(jlabel3,AbsLabel3);
this.getContentPane().add(jlabel4,AbsLabel4);
this.getContentPane().add(jlabel5,AbsLabel5);
this.getContentPane().add(jlabel6,AbsLabel6);
//mostra a imagem
image = new ImageIcon(this.getClass().getResource("logo.png"));
jlabel.setIcon(image);
this.getContentPane().add(jlabel,absimage);
}
@Override
public void run(){
this.pack();
this.setVisible(true);
this.setLocationRelativeTo(null);
ConnEmprestimos u = new ConnEmprestimos(null);
ArrayList<Emprestimos> user = u.Busca();
//connEmprestimos count
ArrayList<Emprestimos> count = u.Verifica2();
for(Emprestimos Count : count){
value = Count.getCount();
}
float x = 0; float z = (float) 100/value;
for(Emprestimos s : user){
x++;
barra.setValue((int) (z*x));
jlabel2.setText((int) (z*x)+"%");
jlabel4.setText("\n Carregando Usuarios: "+s.getNomeUsuario());
jlabel5.setText("\n Carregando Livros: "+s.getNomeLivro());
jlabel6.setText("\n Carregando código de barras: "+s.getCodBarras());
try{
Thread.sleep(100);
} catch (InterruptedException ex){
Logger.getLogger(SplashScreen.class.getName()).log(Level.SEVERE, null, ex);
}
value--;
}
//fecha esse splash
SplashScreen.this.dispose();
}
}
Classe AbreSistema.java - aki chama a thread de splash e a thread JPrincipal
import java.net.ServerSocket;
import javax.swing.JOptionPane;
/**
*
* @author vielmond
*/
public class ClasseAbreSistema {
private static ServerSocket s;
public static void main(String[] args){
try {
s = new ServerSocket(9581);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Desculpe, mas só uma aplicação pode ser executada por vez.");
System.exit(0);
}
SplashScreen splash = new SplashScreen();
ChamaSistema chamasistema = new ChamaSistema();
Thread splashscreen = new Thread(splash);
Thread chamaSistema = new Thread(chamasistema);
//inicia a thread de sistema
chamaSistema.setPriority(Thread.MAX_PRIORITY);
chamaSistema.start();
//inicia a thread de splash
splashscreen.start();
}
}
ta funcionando blz… disponivel para quem quiser…
mas preciso saber como faço para mudar a cor de uma linha unica em um jtable conforme a data de uma celula dessa linha for anterior a atual? por favor preciso com urgencia!!!
obrigado
wagner