Como colocar imagem de fundo no JDesktop

4 respostas
F

estou usando o exemplo do JInternalFrame, e estou tentando colocar uma imagem de fundo no desktop, estou fazendo assim. Crio um JLabel com a imagem e adiciono ela.
Desta forma a imagem aparece mas quando eu abro uma janela interna ela nao aparece acho que ela esta atraz da JLabel e nao consiguo trazer ela para frente, ja tentei usar ToFront(), e tambem nao funcionou. Gostaria de saber como eu faço para a janela interna aparecer? Deste jeito usando a JLabel funciona ou tenho que fazer dirente? Se puder colocar o codigo de como fazer eu agradeço

Fiz Assim

JLabel fundo=new JLabel(new ImageIcon("imagem.jpg"));
getContentPane().add(fundo);

Funciona mas as janelas internas nao abrem

4 Respostas

JP1

ja tentou usar:

fundo.setEnable(false);

Mesmo assim ainda não funciona?

ou então, nas JInternalFrame usar:

jifTela.setSelected(true);

Estou apenas dando uma dica, não pude testar ainda.

MAs vou por o fundo aqui e te aviso se funcionar.

:thumbup:

furutani

Eu fiz assim

desktop = new JDesktopPane(){ Image im = (new ImageIcon("SuaImagem.jpg")).getImage(); public void paintComponent(Graphics g){ g.drawImage(im,0,0,this); } };

JP1

Onde eu insiro este código?

Eu fiz desta forma.

public ControleCentral(){
        super("blah");
        JLabel background = new JLabel(new ImageIcon("img/principal/background.png"));
        //Faz a janela principal indentada na tela, respeitando
        //100 pixels de cada "edge"
        int inset = 100;
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(inset, inset,
                screenSize.width - inset*2,
                screenSize.height - inset*2);
        
        //monta a GUI
        jdpDesktop = new JDesktopPane();
        jifInfoSis();
        jifMonitorRede();
//        setIconImage(getToolkit().getImage("img/principal/jsms.png"));
        setContentPane(jdpDesktop);
        setJMenuBar(criaBarraDeMenu());
        jdpDesktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
        jdpDesktop.add(background);

Só que não apareceu?

O que eu fiz de errado?

JP1
Olhem o que eu acabei de fazer:
package Servidor.Design;

/*
 * Created on 07/07/2005 01:14:55
 * @author --------------
 */

import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class Background extends JPanel {
	private ImageIcon image;

	public Background() {
		image = new ImageIcon("/img/principal/background.png");
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		image.paintIcon(this, g, 0, 0);
	}

	public Dimension getPreferredSize() {
		return new Dimension (image.getIconWidth(),
		image.getIconHeight() );
	}
}
e na classe principal inclui:
protected void Background(){
        Background fundo = new Background();
        jdpDesktop.add(fundo);
    }
no código acima eu alterei esta parte:
jifInfoSis();
        jifMonitorRede();
        Background();

mas ainda não obtive sucesso.

ps: lembro que eu tinha feito o fundo, só que a imagem ficou horrivel, nao cobriu todo o fundo do JDesktopPane.

Obrigado a quem puder me ajudar.

Criado 16 de julho de 2005
Ultima resposta 16 de jul. de 2005
Respostas 4
Participantes 3