JDesktopPane

1 resposta
I

Bom galera,

tenho um programa q estou desenvolvendo pra mim, tenho uma JDesktop e uma JInternalFrame, na JDesktop tenho menus e etc, mais não estou conseguindo colocar uma imagem de fundo na JDesktop, ja fiz de tudo mais não consigo, olha o treixo do codigo

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

/**
 * Cadastro de usuarios.
 *
 * @author José Carlos
 * @versao 1.00 22-03-05
 */
public class AgendaPessoalFrame extends JFrame implements ActionListener {
    
    private JMenuItem menuArquivoSair,menuExibirCadastrar,menuExibirCadastrarCli,menuArquivoLogar;
    private JDesktopPane tela;
    private JMenu menuArquivo;
    private JMenuBar menuBar;
    private JMenuItem menuArquivoLogoff;
    private JMenu menuExibir;
    private ImageIcon icon;
    
    /**
     * Construtor
     */  
     public AgendaPessoalFrame() {
        
        tela = new JDesktopPane();
        getContentPane().add(tela);
        setExtendedState(MAXIMIZED_BOTH); 
        icon = new ImageIcon("cartao.jpg");
                
         menuBar = new JMenuBar();
         menuArquivo = new JMenu("Arquivo");
         menuArquivoSair = new JMenuItem("Sair");
         menuArquivoLogoff = new JMenuItem("Efutar LogOff");
         menuExibirCadastrar = new JMenuItem("Cadastrar Usuario do Sistema");
         menuExibirCadastrarCli = new JMenuItem("Cadastrar Cliente");
         menuArquivoLogar = new JMenuItem("Logar");
         menuExibir = new JMenu("Cadastrar");
         
         menuExibirCadastrar.addActionListener(this);
         menuArquivoSair.addActionListener(this);
       
        
        // Add action listener para os Butoes
        
        menuArquivo.add(menuArquivoLogar);
        menuArquivoLogar.setMnemonic('l');
        
        menuArquivo.addSeparator();
        menuArquivo.add(menuArquivoLogoff);
        menuArquivoLogoff.setMnemonic('e');
        
        menuArquivo.add(menuArquivoSair);
        menuArquivoSair.setMnemonic('s');
        menuArquivo.setMnemonic('a');
        
        menuExibir.add(menuExibirCadastrar);
        menuExibirCadastrar.setMnemonic('c');
        
        menuExibir.add(menuExibirCadastrarCli);
        menuExibirCadastrarCli.setMnemonic('a');
        
        menuExibir.setMnemonic('c');
        
        menuBar.add(menuArquivo);
        menuBar.add(menuExibir);
        
        setTitle("Cadastrar Cliente / Gerar Ordem de serviço");
        setJMenuBar(menuBar);
        setSize(new Dimension(400, 400));
        
        
        // Add window listener.
        this.addWindowListener
        (
            new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    AgendaPessoalFrame.this.windowClosed();
                }
            }
        );  
    }
    
    public void actionPerformed(ActionEvent evento)
     {
     	 if(evento.getSource()==menuExibirCadastrar)
     	   { 
     	     CadastrarLogin janelaSenha = new CadastrarLogin();
     	     tela.add(janelaSenha);
     	   }
     	 if(evento.getSource()==menuArquivoSair)
     	   { 
     	     dispose();
     	   }  
     }
    
    /**
     * Fechar a aplicação.
     */
    protected void windowClosed() {
    	
    	    	
        // Sair da aplicação.
        System.exit(0);
    }
}

Como posso colocar?

1 Resposta

F

sobreescreve o metodo
public void paintComponent(Graphics g)

da uma olhada no codigo abaixo e coloca num diretorio onde tenha uma figura chamada
background.gif !!!

package desktop;

import java.awt.Graphics;
import java.awt.Image;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;


/**
 * @author fabiofalci
 */
public class MyDesktop extends JDesktopPane {

    private Image im = null;

    public MyDesktop() {
        this.initialize();
    }
    
    protected void initialize() {
        URL imageURL = getClass().getResource("background.gif");
        if (imageURL == null)
            return;        
        
        im = new ImageIcon(imageURL).getImage();
    }
    
    public void paintComponent(Graphics g) {        
        int x = (this.getWidth() - im.getWidth(null)) / 2;
        int y = (this.getHeight() - im.getHeight(null)) / 2;        
        
        g.drawImage(im, x, y, this);
    }
    
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(new MyDesktop());        
        frame.setSize(400, 300);
        frame.show();
    }
}
Criado 17 de abril de 2005
Ultima resposta 18 de abr. de 2005
Respostas 1
Participantes 2