Repaint() não quer funcionar

6 respostas
Heartbreaker
O código é este:
@Override
			public void actionPerformed(ActionEvent e) {
				File verif = Quadtree.abrirArquivo("jpg", "Arquivo de imagem");
				if (verif != null) {
					try {
						Quadtree.imagem = Quadtree.toGrayscale(ImageIO.read(verif));
					} catch (IOException e1) {
						System.out.println("Erro na abertura do arquivo");
						e1.printStackTrace();
					}
					JLabel label = new JLabel(new ImageIcon(Quadtree.imagem));
					panelabrir.add(label);
					panelabrir.repaint();
				}
				
			}

A imagem só aparece depois que eu minimizo e restauro o JFrame. Qual é o problema?

6 Respostas

matheuslmota

Você sobrescreveu corretamente o método paintComponent de panelabrir?

Heartbreaker

Não O.o
Não é só chamar o método repaint()?

E

Não sei se o “repaint” deveria funcionar nesse caso, já que estamos incluindo um JLabel em tempo de execução. Talvez seja necessário usar um updateUI (que é um método bem lento).

ViniGodoy

Segundo o javadoc:

Você deve chamar o método validate(), não o método repaint().

Heartbreaker

Ok obrigado.

Heartbreaker

Mais uma dúvida, o que faz exatamente o validate() e o updateUI()? Qual a diferença?

Criado 4 de junho de 2012
Ultima resposta 5 de jun. de 2012
Respostas 6
Participantes 4