1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Colocar uma image Background em uma aplicação Java (JFrame)

Galera venho tendo dificuldade em conseguir colocar uma imagem de fundo em uma aplicação que estou fazendo didaticamente. Procurei sobre, e achei este código:

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class ImagePanel extends JPanel{

    private BufferedImage image;

    public ImagePanel() {
       try {                
          image = ImageIO.read(new File("image name and path"));
       } catch (IOException ex) {
            // handle exception...
       }
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, null); // see javadoc for more info on the parameters            
    }

}

Só que eu fui estudar o código, e não vejo quando o paintComponent é usado. Quando instacio a classe, e passo o caminho da imagem como parâmetro, nada acontece. E no construtor ele só faz uma ação, que é: image = ImageIO.read(new File("image name and path"));

E (se não estou enganado) o background é colocado na codificação do método paintComponent. Mas no exemplo da fonte que consegui o código, ele não chama este método. Só instacia e fala pra jogar a path da imagem como parâmetro e diz que funciona perfeitamente. Alguém poderia me dar um exemplo mais claro da utilização deste código (ou explicar detalhadamente)? Ou me falar uma maneira melhor de se colocar uma imagem como Background de uma JFrame?

E outra, no método paintComponent, ele tem como parâmetro um Graphics. O que seria esse Graphics? Eu estou trabalhando com imagem, eu posso passar uma BufferedImage como parâmetro? O que eu deveria passar como parâmetro ali?

Agradeço desde já, e peço desculpas por alguma pergunta muito óbvia, é que sou leigo ainda. Abraços

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java javadoc java8 javafx ou faça a sua própria pergunta.