É o seguinte, estou desenvolvendo um programa, e ele possui usuários, e logo quando ele é aberto, aparece uma JInternalFrame pedindo usuário e senha… Até ai tudo bem, só que eu queria que quando ele digitasse o usuário e senha e clicasse em OK e a janela se fechasse, fosse atualizado um JTextField que se encontra no JFrame Principal, que utilizei de barra de status do programa… Tipo, para dar boas vindas ao usuário: “Bem vindo” e o nome do usuário… só que não consigo fazer ele atualizar, sem fechar o programa… alguem poderia me ajudar?!? :lol:
// no construtor do seu JInternalFramepublicNomeDoSeuInternalFrame(NomeDoSeuJFramef){// recebe a referência do seu frame principalframe=f;}// junto com as declarações dos campos do seu JInternalFrameprivateNomeDoSeuJFrameframe;/* * para trabalharmos com componentes swing atualizados dinamicamente * é interessante que utilizemos threads separadas, sendo assim, criamos uma * thread para realizar a tarefa do botão e uma para atualizar o JTextField. * Vc pode tbm criar classe internas anonimas, mas vai ter o incoveniente de * criar referências final para trabalhar com seus objetos... */privateclassAtualizaJTextFieldimplementsRunnable{publicAtualizaJTextField(Stringmensagem){super();this.mensagem=mensagem;}// é dentro do método run que a interface é atualizadapublicvoidrun(){frame.getJTextFieldASerAtualizado().setText(mensagem);}privateStringmensagem;}privateclassExecutaBotaoimplementsRunnable{publicvoidrun(){//Abre conexão;//Consulta usuários no banco;//Verifica se usuário é cadastrado;if(usuárioécadastrado){/* * para atualizar o JTextField do JFrame * serie melhor vc usar um JLabel, mas fica a seu critério. *//* * para trabalharmos com atualizacoes, utilizamos o método * invokeLater que vai colcoar a atualização na interface * na fila de processamento de eventos do awt, passando como * parâmetro um Runnable (note que estamos dentro de uma thread! */SwingUtilities.invokeLater(newAlteraJTextField("sua mensagem"));// descarta o JInternalFramedispose();}else{//Exibe mensagem que o usuário não é cadastrado;}}}// método do btn OKprivatevoidbtnOKActionPerformed(ActionEventevt){// criamos a thread com o runnable que escrevemosThreadt=newThread(newExecutaBotao());t.start();// iniciamos a thread}
Fiz um projeto no NetBeans, ta meio baguncado mas vc vai ententer
Falow!
Thiago_G3
nossaa!!! valew mesmo cara… você me ajudou mtoooo msm! Muito obrigado! Acabei tendo melhor noção de classes internas tbm! valew msm! Precisando estamos ai!