Posta o código da sua consulta.
public List<Pojo> consultar(DaoListener listener) {
listener.consultaIniciada();
List<Pojo> list = new ArrayList<>();
try {
PreparedStatement ps = BD.getConexao().prepareStatement("SELECT * FROM pessoas");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
pojo = new Pojo();
pojo.setId(rs.getInt("id"));
pojo.setNome_razaosocial(rs.getString("nome_razaosocial"));
pojo.setFantasia_apelido(rs.getString("fantasia_apelido"));
pojo.setCpf_cnpj(rs.getString("cpf_cnpj"));
pojo.setCelular(rs.getString("celular"));
pojo.setEmail(rs.getString("email"));
pojo.setData_nascimento(rs.getDate("data_nasc"));
pojo.setSexo(rs.getString("sexo"));
pojo.setStatus(rs.getBoolean("status"));
list.add(pojo);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
}
listener.consultaEncerrada();
return list;
}
Faz o seguinte, põe um Thread.yield() a cada iteração do seu laço, isso vai dar uma chance para as outras Threads conseguirem uma fatia de tempo do processador.
while (rs.next()) {
pojo = new Pojo();
pojo.setId(rs.getInt("id"));
pojo.setNome_razaosocial(rs.getString("nome_razaosocial"));
pojo.setFantasia_apelido(rs.getString("fantasia_apelido"));
pojo.setCpf_cnpj(rs.getString("cpf_cnpj"));
pojo.setCelular(rs.getString("celular"));
pojo.setEmail(rs.getString("email"));
pojo.setData_nascimento(rs.getDate("data_nasc"));
pojo.setSexo(rs.getString("sexo"));
pojo.setStatus(rs.getBoolean("status"));
list.add(pojo);
Thread.yield(); // dar uma chance para outras Threads executarem
}
coloquei, a tela ainda permanece em branco (não carrega os componentes)
Como você faz pra executar a consulta e abrir a tela LoadTester?
Posta o fonte completo da classe LoadTester.
Ao abrir a tela gerenciar eu chamo esse método para preencher minha tabela:
LoadTester load = new LoadTester(null, true);
for (Pojo p : PessoaDao.consultar(load)) {
if (p != null) {
tabela.tmic.adicionaLinha(p);
tabela.tmic.fireTableDataChanged();
}
}
O código da LoadTester já postei acima. Desenhei ela no netbeans, os códigos que não postei foi o que o mesmo criou, mas segue de novo:
package load;
import br.com.winsite.dao.DaoListener;
public class LoadTester extends javax.swing.JDialog implements DaoListener {`
/**
* Creates new form LoadTester
*
* @param parent
* @param modal
*/
public LoadTester(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
// método da interface DaoListener
@Override
public void consultaIniciada() {
// executa o setVisible em uma Thread pro método não ficar bloqueado, já que é uma janela modal
new Thread(() -> this.setVisible(true)).start();
}
// método da interface DaoListener
@Override
public void consultaEncerrada() {
this.setVisible(false);
}
[generated code] //cod gerado pelo netbeans
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
LoadTester dialog = new LoadTester(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
//Declaracao de variaveis feita pelo netbeans:
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jlLoad;
// End of variables declaration
Não dá pra compilar sua classe se não postar o código completo.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package load;
import dao.DaoListener;
/**
*
*
*/
public class LoadTester extends javax.swing.JDialog implements DaoListener {
/**
* Creates new form LoadTester
*
* @param parent
* @param modal
*/
public LoadTester(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
// método da interface DaoListener
@Override
public void consultaIniciada() {
new Thread(() -> this.setVisible(true)).start();
}
// método da interface DaoListener
@Override
public void consultaEncerrada() {
this.setVisible(false);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jlLoad = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jlLoad.setBackground(new java.awt.Color(0, 0, 0));
jlLoad.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jlLoad.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jlLoad.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/reload_60.gif"))); // NOI18N
jlLoad.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Carregando...");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 173, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jlLoad, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(134, 134, 134)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jlLoad, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 55, Short.MAX_VALUE)))
);
setSize(new java.awt.Dimension(189, 217));
setLocationRelativeTo(null);
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(LoadTester.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
LoadTester dialog = new LoadTester(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jlLoad;
// End of variables declaration
}
Experimenta mudar seu método consultaIniciada para usar o invokeLater ao invés de Thread:
@Override
public void consultaIniciada() {
SwingUtilities.invokeLater(() -> this.setVisible(true));
}
Agora a tela é carregada corretamente (aparece os componentes), porém ela só aparece depois que a consulta já foi feita.
Então sua consulta está bloqueando tudo, tenta realizar a consulta em uma Thread separada:
public List<Pojo> consultar(DaoListener listener) {
listener.consultaIniciada();
List<Pojo> list = new ArrayList<>();
try {
Thread thread = new Thread(() -> realizarConsulta(list));
thread.start();
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
listener.consultaEncerrada();
return list;
}
private void realizarConsulta(List<Pojo> list) {
try {
PreparedStatement ps = BD.getConexao().prepareStatement("SELECT * FROM pessoas");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Pojo pojo = new Pojo();
pojo.setId(rs.getInt("id"));
pojo.setNome_razaosocial(rs.getString("nome_razaosocial"));
pojo.setFantasia_apelido(rs.getString("fantasia_apelido"));
pojo.setCpf_cnpj(rs.getString("cpf_cnpj"));
pojo.setCelular(rs.getString("celular"));
pojo.setEmail(rs.getString("email"));
pojo.setData_nascimento(rs.getDate("data_nasc"));
pojo.setSexo(rs.getString("sexo"));
pojo.setStatus(rs.getBoolean("status"));
list.add(pojo);
Thread.yield();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
}
}
A tela volta a não carregar os componentes, aparece em branco
Então tem algum problema de sincronização entre suas consultas e a Thread de renderização do Swing.
Não tenho ideia do que pode ser, por isso socorri ao fórum. Já tentei vários jeitos diferentes mas não consegui fazer esse bendito load
Poderias tentar substituir o Thread.yield() por um Thread.sleep(1).
A tela ainda fica em branco 
Como está implementado o método main de sua aplicação?
Quando o sistema inicia eu chamo essa classe que abre minha tela principal:
package principal;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
public class Aplicacao {
public static void main(String Args[]) throws Exception {
try {
JFrame.setDefaultLookAndFeelDecorated(true);
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
TelaPrincipal tela = new TelaPrincipal();
tela.setVisible(true);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
}
Alguém?
Tem algum processo bloqueando a thread do Swing.
Teria que ver todas suas classes pra identificar exatamente o ponto onde está o problema.