Alguém pode explicar por que não aparece nada em cada JTextField?

Porque na minha aplicação nada aparece nos campos correspondentes, já que usando o Gerenciador do HSQLDB eu coloquei dados via sql na tabela “clientes”?

Eis o código:

import javax.swing.;
import java.sql.
;

public class TelaPrincipal {

JFrame mainTela = new JFrame(“Principal.”);
Connection conexao;
Statement sentenca;
ResultSet resultadoConsulta;
String consulta1 = “SELECT id_cliente, nome_cliente, telefone_cliente FROM clientes”;
int clienteId;
String clienteNome;
String clienteTelefone;
JTextField idText = new JTextField(4);
JTextField nomeText = new JTextField(35);
JTextField telefoneText = new JTextField(8);
JPanel camposPanel = new JPanel();

public TelaPrincipal() {

  mainTela.setExtendedState(JFrame.MAXIMIZED_BOTH);
  mainTela.setVisible(true);
  mainTela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  camposPanel.add(idText);   
  camposPanel.add(nomeText);
  camposPanel.add(telefoneText);
  mainTela.add(camposPanel);
  
  try {
     Class.forName("hsqldb.org.jdbc.Driver");    
     conexao = DriverManager.getConnection("jdbc:hsqldb:file:/database/clientes", "sa", "");    
     sentenca = conexao.createStatement();   
     resultadoConsulta = sentenca.executeQuery(consulta1);
        while(resultadoConsulta.next()) {
           clienteId = resultadoConsulta.getInt("id_cliente");            
           clienteNome = resultadoConsulta.getString("nome_cliente");            
           clienteTelefone = resultadoConsulta.getString("telefone_cliente");            
           idText.setText(String.valueOf(clienteId));
           nomeText.setText(clienteNome);
           telefoneText.setText(clienteTelefone);
        }
        conexao.close();   
  }
  catch(ClassNotFoundException cnfe) {}
  catch(SQLException e) {}

}

public static void main(String[] args) {

  TelaPrincipal tp = new TelaPrincipal();    

}

}


Mas cada JTextField fica em branco. Qual o porquê?
Até a próxima!

Eu acho que é porque você tem que adicionar os JTextField no JPanel após o JTextField ser carregado com o valor.

Exemplo:

camposPanel.add(idText);

tem que vir depois de

idText.setText(String.valueOf(clienteId));

Não… Não é isso que o Roger75 disse não… Fiz um teste aqui e o texto que eu setei no JTextField depois de adicioná-lo ao JPannel apareceu quando eu invoquei o show do JFrame.

	public void testSetTextBeforeAddTextField(){
		JFrame frame = new JFrame();
		JPanel app = new JPanel(new BorderLayout());
		frame.setTitle("Teste");
		frame.setSize(100, 100);
		frame.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
		JTextField t = new JTextField();
		app.add(t);
		frame.getContentPane().add(app);
		frame.setVisible(true);
		t.setText("Teste");
	}
	
	public static void main(String[] args) {
		try{
			Testes app = new Testes();
			app.testSetTextBeforeAddTextField();
		}finally{
//			System.exit(0);
		}
	}

O Problemna deve ser outro…