Adicionar uma imagem de fundo em um JDesktopPane()

Como adicionar uma imagem de fundo (background fundo.gif) em um JDesktopPane

JDesktopPane desktop = new JDesktopPane();
// colocar imagem de fundo

Obrigado

gatecrasher@linuxmail.org

Kra tá meio tarde, amanhã dou uma olhada pra ver se isso aki funciona…


desktop = new JDesktopPane();
internalframe.getContentPane().add(desktop);

Icon img = new ImageIcon("images/j&jwed.gif");
JLabel bdimage=new JLabel("text", img, SwingConstants.CENTER);
//bdimage.setVerticalTextPosition(JLabel.CENTER); if with text
//bdimage.setHorizontalTextPosition(JLabel.CENTER); if with text
bdimage.setVerticalAlignment(SwingConstants.CENTER);
bdimage.setHorizontalAlignment(SwingConstants.CENTER);

Toolkit thekit=internalframe.getToolkit();
Dimension dim=thekit.getScreenSize();
//bdimage.setPreferredSize(new Dimension(dim.width, dim.height));
bdimage.setBounds(0, 0, dim.width, dim.height);
//ip.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
desktop.add(bdimage, new Integer(Integer.MIN_VALUE)); 

Não testei, peguei lá e joguei aki, mas pelo menos já te dá uma luz…

Não testei, se vc quise dar uma vasculhada eu tava procurando aki:
http://search.java.sun.com/search/java/index.jsp?col=javaforums&qp=forum%3A57&qt=JDesktopPane+Image&x=12&y=6

Um abraço kra… :wink:

Eu não consegui fazer desse jeito não. Eu estou colocando uma imagem dentro do JLabel, depois eu adiciono o JLabel ao desktop e o desktop ao JFrame

[code]JDesktopPane desktop = new JDesktopPane();

	ImageIcon imgFundo = new ImageIcon(getClass().getResource("logo.jpg"));
	JLabel fundo = new JLabel();
	fundo.setIcon(imgFundo);
	fundo.setVerticalAlignment(SwingConstants.CENTER);
	fundo.setHorizontalAlignment(SwingConstants.CENTER);
	desktop.setBackground(Color.WHITE);
    desktop.add(fundo, new Integer(Integer.MIN_VALUE));
    
	content.add(desktop, BorderLayout.CENTER);[/code]

Por que não aparece o logo no fundo?

Tchê, eu fiz um pequeno programinha demonstrando esta técnica, completamente testado a aprovado. Tu só vais ter que criar um arquivo de imagem chamado “foto.jpg” e colocar na mesma pasta que o teu programa, para que ele leia este arquivo e carregue sua imagem.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class dentro {
	public static void main(String[]args) {
		JFrame tela = new JFrame("Programa");
		final JDesktopPane deska = new JDesktopPane();
		JMenuBar barra = new JMenuBar();
		JMenu opcoes = new JMenu("Opções");
		JMenuItem abreinterna = new JMenuItem("Abrir telinha interna");
	
		Icon imagem = new ImageIcon("foto.jpg");
		JLabel lab = new JLabel();
		lab.setIcon(imagem);
		double alt = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		double larg = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
		
		int altura = (int) alt;
		int largura = (int) larg;
		
		lab.setBounds(0,0,largura,altura);
		
		deska.add(lab);
		
		abreinterna.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JInternalFrame interna = new JInternalFrame("Tela menor", true, true, true, true);
				interna.setBounds(10,10,400,400);
				interna.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
				deska.add(interna);
				interna.setVisible(true);
			}});
		
		
		opcoes.add(abreinterna);
		barra.add(opcoes);
		
		
		tela.getContentPane().add(deska);
		tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		tela.setExtendedState(JFrame.MAXIMIZED_BOTH);
		tela.setJMenuBar(barra);
		tela.setVisible(true);
	}
}

Legal tua solução Fabio, bem simples!
Mas e qd redimensionar a janela, o q vc faz pra redimensionar a imagem de fundo de acordo com o tamanho do teu desktopPane?