Pessoal peguei um código (segue o link http://javafree.uol.com.br/viewtopic.jbb?t=865627) que colocar uma imagem de fundo no JDesktopPane, segue ai:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JDesktopPane;
public class JDesktopPaneComImage extends JDesktopPane {
private static final long serialVersionUID = 1L;
Image imagem;
public JDesktopPaneComImage(String caminho) {
imagem = Toolkit.getDefaultToolkit().getImage(getClass().getResource(caminho));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(imagem != null) {
g.drawImage(imagem, 0, 0, this.getWidth(), this.getHeight(), this);
}
}
}
E testando com esse código funciona legal:
public class Teste{
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame teste = new JFrame();
JDesktopPane d = new JDesktopPaneComImage("desktopSisGEAC.jpg");
teste.setSize(400, 400);
teste.setExtendedState(JFrame.MAXIMIZED_BOTH);
teste.add(d);
teste.setVisible(true);
}
Sendo que eu tenho uma classe que extende javax.swing.JFrame e coloco o código que substitui a imagem no construtor, simplesmente não funciona, segue o código:
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
/**
*
* @author JUNIOR
*/
public class GUIPrincipal extends javax.swing.JFrame {
/**
* Creates new form GUIPrincipal
*/
public GUIPrincipal(){
initComponents();
this.desktop = new JDesktopPaneComImage("desktopSisGEAC.jpg");
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setLocationRelativeTo(null);
this.add(this.desktop);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
desktopPane = new javax.swing.JDesktopPane();
menuBar = new javax.swing.JMenuBar();
menuArquivo = new javax.swing.JMenu();
itemDeMenuImportaBase = new javax.swing.JMenuItem();
itemDeMenuExportaBase = new javax.swing.JMenuItem();
jSeparator1 = new javax.swing.JPopupMenu.Separator();
itemDeMenuSair = new javax.swing.JMenuItem();
menuCadastro = new javax.swing.JMenu();
itemDeMenuExame = new javax.swing.JMenuItem();
itemDeMenuCadPaciente = new javax.swing.JMenuItem();
itemDeMenuCadProfissional = new javax.swing.JMenuItem();
itemDeMenuCadUsuario = new javax.swing.JMenuItem();
menuRelatorio = new javax.swing.JMenu();
itemDeMenuGeral = new javax.swing.JMenuItem();
itemDeMenuPaciente = new javax.swing.JMenuItem();
itemDeMenuProfissional = new javax.swing.JMenuItem();
itemDeMenuUsuario = new javax.swing.JMenuItem();
menuAjuda = new javax.swing.JMenu();
itemDeMenuSobre = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("SisGEAC - Versã 2.0");
menuArquivo.setMnemonic('f');
menuArquivo.setText("Arquivo");
itemDeMenuImportaBase.setMnemonic('o');
itemDeMenuImportaBase.setText("Importar...");
menuArquivo.add(itemDeMenuImportaBase);
itemDeMenuExportaBase.setMnemonic('s');
itemDeMenuExportaBase.setText("Exportar...");
menuArquivo.add(itemDeMenuExportaBase);
menuArquivo.add(jSeparator1);
itemDeMenuSair.setMnemonic('x');
itemDeMenuSair.setText("Sair");
itemDeMenuSair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
itemDeMenuSairActionPerformed(evt);
}
});
menuArquivo.add(itemDeMenuSair);
menuBar.add(menuArquivo);
menuCadastro.setMnemonic('e');
menuCadastro.setText("Cadastro");
itemDeMenuExame.setText("Exame");
menuCadastro.add(itemDeMenuExame);
itemDeMenuCadPaciente.setMnemonic('t');
itemDeMenuCadPaciente.setText("Paciente");
menuCadastro.add(itemDeMenuCadPaciente);
itemDeMenuCadProfissional.setMnemonic('y');
itemDeMenuCadProfissional.setText("Profissional");
menuCadastro.add(itemDeMenuCadProfissional);
itemDeMenuCadUsuario.setMnemonic('p');
itemDeMenuCadUsuario.setText("Usuário");
menuCadastro.add(itemDeMenuCadUsuario);
menuBar.add(menuCadastro);
menuRelatorio.setText("Relatório");
itemDeMenuGeral.setText("Geral (tipo de exame)");
menuRelatorio.add(itemDeMenuGeral);
itemDeMenuPaciente.setText("Paciente");
menuRelatorio.add(itemDeMenuPaciente);
itemDeMenuProfissional.setText("Profissional");
menuRelatorio.add(itemDeMenuProfissional);
itemDeMenuUsuario.setText("Usuario");
menuRelatorio.add(itemDeMenuUsuario);
menuBar.add(menuRelatorio);
menuAjuda.setMnemonic('h');
menuAjuda.setText("Ajudar");
itemDeMenuSobre.setMnemonic('a');
itemDeMenuSobre.setText("Sobre");
itemDeMenuSobre.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
itemDeMenuSobreActionPerformed(evt);
}
});
menuAjuda.add(itemDeMenuSobre);
menuBar.add(menuAjuda);
setJMenuBar(menuBar);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
private void itemDeMenuSairActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
// Variables declaration - do not modify
private javax.swing.JDesktopPane desktopPane;
private javax.swing.JMenuItem itemDeMenuCadPaciente;
private javax.swing.JMenuItem itemDeMenuCadProfissional;
private javax.swing.JMenuItem itemDeMenuCadUsuario;
private javax.swing.JMenuItem itemDeMenuExame;
private javax.swing.JMenuItem itemDeMenuExportaBase;
private javax.swing.JMenuItem itemDeMenuGeral;
private javax.swing.JMenuItem itemDeMenuImportaBase;
private javax.swing.JMenuItem itemDeMenuPaciente;
private javax.swing.JMenuItem itemDeMenuProfissional;
private javax.swing.JMenuItem itemDeMenuSair;
private javax.swing.JMenuItem itemDeMenuSobre;
private javax.swing.JMenuItem itemDeMenuUsuario;
private javax.swing.JPopupMenu.Separator jSeparator1;
private javax.swing.JMenu menuAjuda;
private javax.swing.JMenu menuArquivo;
private javax.swing.JMenuBar menuBar;
private javax.swing.JMenu menuCadastro;
private javax.swing.JMenu menuRelatorio;
// End of variables declaration
private JDesktopPane desktop;
}
A referida Classe é chamada na seguinte classe Principal:
import java.io.IOException;
import net.mastersoft.sisgeac.visao.gui.GUIPrincipal;
public class Principal {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
GUIPrincipal guiPrincipal = new GUIPrincipal();
guiPrincipal.setVisible(true);
}
}
Porque dessa forma a imagem não esta sendo carregada?