Adicionar imagem jDesktopPane?

Olá.

Eu tenho um jFrame principal com jMenubar e um jDesktopPane onde são
abertos os jInternalframe que são chamados pelos jMenuItem dos jMenu, e
gostaria que meu aplicativo iniciasse com uma imagem no jDesktopPane.

Será que tem como adicionar uma imagem no jDesktopPane ?
Uma vez que daria outra “cara” para a tela do sistema.

Se alguem souber de algum tutorial que ensine ou puder me dar uma ideia
de como fazer isso ou ainda conhecer outra forma.

Vlw.

É possível adicionar uma imagem a um JDesktopPane sem problemas. De uma olhada neste tópico:

http://www.guj.com.br/posts/list/39131.java#220486

Nele eu adicionei uma classe que faz isto para você.
Qualquer dúvida é só falar.

Espero ter ajudado.

E ae cara valeu pela ajuda, por eu estar iniciando agora em java nao sei muito bem o que cada metodo especifico que voce usou faz,
mas eu entendi o que o metodo faz, mas ainda nao esta dando certo, pois esse erro é mostrado.

O que eu posso estar fazendo de errado ?

linha 32 : image = new ImageIcon(this.getClass().getResource(caminhoImagem));

O erro é esse:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at javax.swing.ImageIcon.(ImageIcon.java:138)
at br.com.strategos.materiaisdeconstrucao.principal.DecoratedDesktopPane.(DecoratedDesktopPane.java:32)
at br.com.strategos.materiaisdeconstrucao.modulos.TelaPrincipal.(TelaPrincipal.java:40)
at br.com.strategos.materiaisdeconstrucao.modulos.TelaPrincipal$9.run(TelaPrincipal.java:225)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Você deve fazer da seguinte forma:

DecoratedDesktopPane pane = new DecoratedDesktopPane(imagem);

E em imagem vai o caminho da sua imagem, porém este eh o caminho de uma imagem no CLASSPATH da aplicação, esta imagem deve estar dentro do jar da aplicação.

É desta forma que você está fazendo?

sim

dentro do projeto tem uma pasta image e dentro dela tem um arquivo image.jpg

e chamo assim

DecoratedDesktopPane desktopPane = new DecoratedDesktopPane("/image/image.jpg");

cara, vou estuda um pouco mais esse código para saber exatamente o que esta fazendo, eu estou achando meio estranho, mas assim que tentar de tudoooo e não conseguir volto a te enche o saco hehe.

muito obrigado.

Esse codigo ta bem simples, e resolve muito bem esse problema de Imagem de Background no JDesktopPane, pelo menos em meu caso. xD

[code]
import javax.swing.;
import java.awt.
;
import java.awt.event.*;
public class BGDesktopPane extends JFrame
{
private static Image img;
private JDesktopPane dp1;
public BGDesktopPane()
{
try
{
img = javax.imageio.ImageIO.read(new java.net.URL(getClass().getResource(“kurumin.jpg”), “kurumin.jpg”));

    }
    catch(Exception e){} [/b]

 dp1 = new JDesktopPane()
 {
     public void paintComponent(Graphics g)
     {
       super.paintComponent(g);
       [b]if(img != null)
       {
           g.drawImage(img, 0,0,this.getWidth(),this.getHeight(),this);
           g.drawString("Background Carregado com Sucesso!!!", (this.getWidth()/2), (this.getHeight()/2) );
       }
      else
           g.drawString("Image not found", 50,50);
       /* O repaint e o VAlidade aparentimente n fazem diferença. Caso
          encontrem algum bom motivo para usa-los, postem, please! xD
       */
       //super.repaint();
       //super.validate();
     }

 };
  addWindowListener(new WindowAdapter()
   {

       public void windowOpened(WindowEvent evt)
       {
           formWindowOpened(evt);
       }
    }
  );


 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 getContentPane().add(dp1);
 setSize(img.getWidth(null),img.getHeight(null));
 setVisible(true);
 pack();

}
private void formWindowOpened(WindowEvent evt)
{
setLocationRelativeTo(null);
setExtendedState(6);
}

public static void main(String[] args)
{
new BGDesktopPane();
}
}[/code]