Nesta caso do seu while, vai mostrar o id somente do último registro do banco, pois você colocou dentro de um while(rs.next()), ai toda vez que tiver um registro no banco vai setar o valor no TextField enquanto tiver dados, se você esta tipo fazendo um sistema de cadastro você pode fazer o seguinte pegar o último registro do do while(rs.next()) e adicionar +1 e na hora de salvar no banco não passar o id no select pois já é auto_increment. E a questão do ficar inativo é so você setar o campo como escolha.setEnabled(false) ai não vai ser possível alterar o conteúdo dela.
K
kazacca
Pois é …teria como me passar o código …consertando o meu…pois não estou conseguindo…a partir do while vai me ajudar my …obrigado
michetti
Então cara eu mudaria somente isto aqui...
private void escolhaActionPerformed(java.awt.event.ActionEvent evt) {
try
{
conectaBanco();
resultSet = statement.executeQuery("SELECT * FROM cadastro");
while (resultSet.next())
{
String id = resultSet.getString("id");
}
escolha.setText(id+1); // TIREI DO WHILE, E ADICIONEI +1 AO ULTIMO REGISTRO DE "id"
}
catch (Exception e)
{
}
}
Tenta ai.. qualquer coisa posta aeww
K
kazacca
escolha.setText(id+1);
na linha acima o campo id está sublinhado, talvez seja pq não esta convertido em int…alguem pode me ajudar…so da erro no id nessa linha.
K
kazacca
O meu código não funciona…tentei tudo…teria como alguem me enviar um código para acessar um banco de dados MySql paga pegar um ID que ja esta com auto increment e exibir numa JTextField??
michetti
Assim que eu faço para consultar em meu banco de dados..
Eu uso o "padrão MVC" ( que no caso não esta completamente certo este meu padrão kkkk)
publicList<Horario>listarHorarios(){ResultSetRS;Stringselect="select * from horario";List<Horario>horarios=newArrayList<>();try{RS=inserir.Consulta(select);while(RS.next()){Horarioh=newHorario();h.setHorario(String.valueOf(RS.getString("horario")));horarios.add(h);}}catch(SQLExceptionex){ex.printStackTrace();}try{inserir.Exit();}catch(SQLExceptionex){Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE,null,ex);}returnhorarios;}
ViniGodoy
NÃO USE LETRAS MAIÚSCULAS NO TÍTULO OU NO TEXTO DO TÓPICO!!!
K
kazacca
Ja tirei o escolha.setText(id) do while e nada, esse codigo em baixo ta funcionando assim, quando abre a janela pra exibir o id …exibe o id se eu apertar enter…to precisando q quando abra a janela exiba o ultimo id automaticamente no campo JTextFiel chamado escolha.
try{conectaBanco();resultSet=statement.executeQuery("SELECT * FROM cadastro");while(resultSet.next()){Stringid=resultSet.getString("id");escolha.setText(id);}}catch(Exceptione){}}
michetti
Então cara se você não colocar este comando dentro de um evento não vai carregar automaticamente mesmo não…
Eu faço assim…
private void formComponentShown(java.awt.event.ComponentEvent evt) {
listarAgendamentos();
// TODO add your handling code here:
}
K
kazacca
Eu quero abrir a janela e aparecer automaticamente o numero do id sem precisar apertar enter…como esse metodo pode me ajudar?
privatevoidformComponentShown(java.awt.event.ComponentEventevt){listarAgendamentos();// TODO add your handling code here: }
michetti
Sim, com este evento assim que o programa for iniciado vai chamar o metodo listarAgendamentos(); consequentemente ir mostrar o id no textField que é no seu caso… ao invés de chamar o metodo listarAgendamentos() você pode por os comandinhos que você esta usando para buscar o id no banco de dados.
K
kazacca
Fiz o q vc falou e nada…não funcionou…coloquei os comandos dentro do ComponentShown
privatevoidescolhaComponentShown(java.awt.event.ComponentEventevt){try{conectaBanco();resultSet=statement.executeQuery("SELECT * FROM cadastro");while(resultSet.next()){Stringid=resultSet.getString("id");escolha.setText(id);}}catch(Exceptione){}}