Background com Imagem

Galera, tou com uma dúvida.
Queria saber como eu faço pra colocar uma imagem, por exemplo jpg, como background de um frame ou jframe, ou até de um panel.
espero que alguem saiba me dizer, valeu.

Tente assim Celo…

MeuPainel = new JPanel() { public void paintComponent(Graphics g) { //Aqui você recebe sua imagem ImageIcon imagem = new ImageIcon("SuaImagem.jpg"); //aqui ele aplica a imagem, com posições iniciais 0 g.drawImage(imagem, 0, 0, null); super.paintComponent(g); } };

Desta forma ao instanciar o seu painel(MeuPainel) já adiciona a função de background dele.

Abraço,
Fábio Heleno

Ô Fábio, essa minha imagem precisa estar na pasta da Classe?
Ou eu posso especificar qualquer endereço de pasta do meu Computador?

E outra pergunta:
A minha IDE diz que o método drawImage não é aplicável para
tipos ImegeIcon.
Pq?Ou fiz algo de errado?
Valeu!

Você deve declarar esta linha abaixo antes de começar o código da classe.

import javax.swing.ImageIcon;

E com relação a localização da imagem, pode estar em qualquer local do disco sim, só lembrando que se você rodar em outro micro, vai dar erro no background, pois não existe tal imagem no mesmo local que no seu micro.

ImageIcon imagem = new ImageIcon("c:\\Windows\\SuaImagem.jpg");

Abraço,
Fábio Heleno

Muito obrigado mesmo CARA valeu mesmo.
Valeu

Mesmo assim cara, mesmo eu importando o swing, ele dá erro.
Só consegui resolver o erro, usando o seguinte artifício:

ImageIcon imagem = new ImageIcon(“imagem.jpg”);
Image ima = imagem.getImage();
g.drawImage(ima,0 , 0, null);
Ao invés de dar o draw diretamente no imageicon, eu usei o image.
Mas mesmo sem erros…
…quando compilei, a imagem não apareceu.
Eu setei a visibilidade como true, a opacidade como false , mas nada apareceu.
me ajuda!

fica meio complicado ver como e porque está dando erro em seu código sem ter como visualiza-lo, se puder, nos disponibilize ele. :cool:

Tente assim…

Image imagem = (new ImageIcon("c:\\pasta\\imagem.jpg").getImage();

Mude null para this, se for para o panel, especifique-o então

g.drawImage(imagem, 0, 0, this);

Importante! Se você especificar somente “image.jpg” esta imagem deve estar junto com os class na pasta do disco.

Abraço,
Fábio Heleno

Bem, está aí meu código:

import java.awt.*;

import javax.swing.*;

public class teste2 {

public static void main(String[] args) {
Frame f1 = new Frame("Tela");
f1.setVisible(true);
f1.setBounds(270,200,400,300);
JPanel p1 = new JPanel(){
	public void paintComponent(Graphics g){
	ImageIcon imagem = new ImageIcon("javalogo.jpg");
	Image ima = imagem.getImage();
	g.drawImage(ima,0 , 0, null);
	super.paintComponent(g);}};
	p1.setOpaque(false);
	p1.setVisible(true);
	f1.add(p1);
    
}

}

Qual será o erro?

Somente adequei ao seu código com que havia lhe dito antes, de uma analisa.

[code]import java.awt.;
import javax.swing.
;

public class teste2 {

public static void main(String[] args) {
    Frame f1 = new Frame("Tela");
    f1.setVisible(false);
    f1.setBounds(270, 200, 400, 300);
    JPanel p1 = new JPanel() {
        public void paintComponent(Graphics g) {
            //aqui eu pego a imagem para usa-la como fundo
            Image imagem = new ImageIcon("background.jpg").getImage();
            //aqui aplico ela com posições iniciais 0 no frame
            g.drawImage(imagem, 0, 0, this); 
        }
    };
    p1.setOpaque(false);
    f1.add(p1);
    f1.setVisible(true);
}

}[/code]

Abraço,
Fábio Heleno

Cara tá muito difícil.
Eu coloquei exatamente esse código:
[/code]
import java.awt.*;

import javax.swing.*;

public class teste2 {

public static void main(String[] args) {
Frame f1 = new Frame(“Tela”);
f1.setVisible(true);
f1.setBounds(0,0,400,300);
JPanel p1 = new JPanel(){
public void paintComponent(Graphics g){
Image imagem = new ImageIcon(“javalogo.jpg”).getImage();

	g.drawImage(imagem, 0, 0, this);
	}
	};
	p1.setOpaque(false);
	p1.setVisible(true);
	f1.add(p1);
    
}

}

[code]

Mesmo assim, apesar de meu frame aparecer, ele não mostra a imagem.

cara, nao cheguei a olhar o teu codigo, mas da uma olhada neste post aqui

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&p=79305&highlight=#79305