Crie um método que auto preenche numa tela de cadastro
de jogadores , porem estou tendo problema em chamar mais de uma imagem
no cadastro onde a i3 sempre trava a tela de cadastro , sou iniciante gostaria de uma
dica ou solução desse problema
public void preenche(int cod){
Jogador j = new Jogador();
DaoJogador dao = new DaoJogador();
j = dao.consulta(cod);
if( j != null ){
jTextFieldIdJog.setText(Long.toString(j.getIdJog()));
jTextFieldNomeJ.setText(j.getNomeJ());
jTextFieldEmaiJ.setText(j.getEmailJ());
jTextFieldTelefoneJ.setText(j.getTelefoneJ());
Image i2;
ImageIcon f = new ImageIcon(j.getSvIMG());
jLabelFotoJog.setIcon(f);
i2 = f.getImage();
f.setImage(i2.getScaledInstance(100, 100, Image.SCALE_FAST));
jLabelFotoJog.setIcon(f);
Image i3;
ImageIcon t = new ImageIcon(j.getImglogo());
jLabelEscudo.setIcon(t);
i3 = t.getImage();
t.setImage(i3.getScaledInstance(100, 100, Image.SCALE_FAST));
jLabelEscudo.setIcon(t);
}
}
Faça o seguinte em seu código:
public void preenche(int cod){
long tempoInicial = System.currentTimeInMillis();
Jogador j = new Jogador();
DaoJogador dao = new DaoJogador();
j = dao.consulta(cod);
System.out.println("Consultou em "+(System.currentTimeInMillis() - tempoInicial));
if( j != null ){
jTextFieldIdJog.setText(Long.toString(j.getIdJog()));
jTextFieldNomeJ.setText(j.getNomeJ());
jTextFieldEmaiJ.setText(j.getEmailJ());
jTextFieldTelefoneJ.setText(j.getTelefoneJ());
System.out.println("Preencheu em "+(System.currentTimeInMillis() - tempoInicial));
Image i2;
ImageIcon f = new ImageIcon(j.getSvIMG());
jLabelFotoJog.setIcon(f);
i2 = f.getImage();
f.setImage(i2.getScaledInstance(100, 100, Image.SCALE_FAST));
jLabelFotoJog.setIcon(f);
System.out.println("Carregou imagem 1 em "+(System.currentTimeInMillis() - tempoInicial));
Image i3;
ImageIcon t = new ImageIcon(j.getImglogo());
jLabelEscudo.setIcon(t);
i3 = t.getImage();
t.setImage(i3.getScaledInstance(100, 100, Image.SCALE_FAST));
jLabelEscudo.setIcon(t);
System.out.println("Carregou imagem 2 em "+(System.currentTimeInMillis() - tempoInicial));
}
}
Um debug clássico, rsrs…
Feito isso, executa seu codigo e ve o que sai no console, copia e cola aqui no topico para poder ver oq esta acontecendo.
Bom o console do depurador saiu isso
Ouvindo em javadebug
Executando programa do usuário
LineBreakpoint CadJogador.java : 586 enviado com êxito.
LineBreakpoint CadJogador.java : 578 enviado com êxito.
Ponto de interrupção na linha 578 na classe Gui.CadJogador pela thread AWT-EventQueue-0.
Thread AWT-EventQueue-0 parada em CadJogador.java:578.
OK, mas altera o código para o que eu te passei no meu ultimo post, e executa o programa, ai copia o que sair no console e cola aqui.