Dúvida sobre o JInternalFrame!

Oi, Pessoal!

Estou com um pequeno probleminha na minha tela principal. Ao entrar ela já está abrindo junto o internalframe. Na verdade quero chamar esse internalframe a partir do meu menuitem.
Por favor alguém poderia me dar um help?

Valeu! :wink:

Coloca o código do evento que chama o JInternalFrame pra gente ver o que tem de errado.

Oi Luiz_ross!

Eu não sei o que era, mas comecei do zero e agora não está mais dando esse erro, apenas não está mostrando o internalframe no frame principal.Não está dando erro, apenas nao chama a tela ao clicar no meniitem, vc saberia me dizer o pq?Se precisar mando o codigo que estou chamando o internalframe…

Valeu!

Manda o código então!!!

Oi!

Esse é o código da tela principal:

/*
 * Projeto: Controle de Gastos 
 * 
 * Tipo:    TelaPrincipal.java
 *
 * Criada em 21 de Março, 2003, 8:34 AM
 */
import javax.swing.*;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.ImageIcon;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Dimension;
import java.io.IOException;

/**
 *
 * @author  aparanho
 */
public class TelaPrincipal 
{//início da classe	

	//declaração das variáveis
	private JMenuBar jmubItens;
    private JMenu jmuDespesas, jmuRelatorios, jmuOutros;
    private JMenuItem jmuiExtras, jmuiFixas, jmuiConducao, jmuiAlimentacao, jmuiSair;   
    private JMenuItem jmuiRelDespesas;//, jmuiRelConducao, jmuiRelAlimentacao;
	private JMenuItem jmuiCalculadora, jmuiSobre, jmuiAjuda;
	private JSeparator jsrSeparar;

	private JFrame jfraPrincipal;
	private JDesktopPane jdskPrincipal;
	    
    /** Criando o formulário TelaPrincipal */
    public TelaPrincipal()
	{
        initComponents();
    }
    
    /** 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.
     */
    private void initComponents()
	{//início do construtor

		jfraPrincipal = new JFrame();
		jdskPrincipal = new JDesktopPane();

		jfraPrincipal.setTitle("Sistema de Controle de Gastos");
		Dimension dimSizeScreen = jfraPrincipal.getToolkit().getScreenSize();		
		jfraPrincipal.setSize(dimSizeScreen);		

		//criando o Título
		//setTitle("Sistema de Controle de Gastos"); 		

        //criando o JMenuBar dos Itens
		jmubItens = new JMenuBar();

		//criando o JSeparator
		jsrSeparar = new JSeparator();

		//criando os JMenu's
		jmuDespesas   = new JMenu();
		jmuRelatorios = new JMenu();
		jmuOutros     = new JMenu();

        //criando os JMenuItens do JMenu Despesas
		jmuiFixas       = new JMenuItem("Fixas", new ImageIcon("Saquinho.gif"));		
        jmuiExtras      = new JMenuItem("Extras", new ImageIcon("DimDim.gif"));
        jmuiConducao    = new JMenuItem("Condução", new ImageIcon("Buss.gif"));
        jmuiAlimentacao = new JMenuItem("Alimentação", new ImageIcon("Papa.gif"));
		jmuiSair        = new JMenuItem("Sair", new ImageIcon("Sair.gif"));

        //criando os JMenuItens do JMenu Relatórios
		jmuiRelDespesas    = new JMenuItem("Despesas", new ImageIcon("DimDim.gif"));
        //jmuiRelConducao    = new JMenuItem("Condução", new ImageIcon("Buss.gif"));
        //jmuiRelAlimentacao = new JMenuItem("Alimentação", new ImageIcon("Papa.gif"));

		//criando os JMenuItens do JMenu Relatórios
		jmuiCalculadora = new JMenuItem("Calculadora", new ImageIcon("calc.gif"));
		jmuiSobre       = new JMenuItem("Sobre", new ImageIcon("sobre.gif"));
		jmuiAjuda       = new JMenuItem("Ajuda", new ImageIcon("help.gif"));

        //setando null para o layout
		jfraPrincipal.getContentPane().setLayout(null);		
		
		//Menu de Despesas e seus Itens para Seleção
		jmuDespesas.setLabel("Despesas");

		jmuiFixas.setLabel("Fixas");
		jmuiExtras.setLabel("Extras");
		jmuiConducao.setLabel("Condução");
		jmuiAlimentacao.setLabel("Alimentação");
		jmuiSair.setLabel("Sair");

		//Menu de Relatórios e seus Itens para Seleção
		jmuRelatorios.setLabel("Relatórios");

        jmuiRelDespesas.setLabel("Despesas");
		//jmuiRelConducao.setLabel("Condução");
		//jmuiRelAlimentacao.setLabel("Alimentação");	
		
		//Menu Outros e seus Itens para Seleção
		jmuOutros.setLabel("Outros");

		jmuiCalculadora.setLabel("Calculadora");
		jmuiSobre.setLabel("Sobre");
		jmuiAjuda.setLabel("Ajuda");

		//chamando as figuras que estão no Menu de Despesas e seus Itens
		jmuDespesas.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\DimDim.gif")); 
		
        jmuiFixas.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\Saquinho.gif"));
		jmuiConducao.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\Buss.gif"));       
        jmuiAlimentacao.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\Papa.gif"));
		jmuiSair.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\sair.gif"));
		
		//chamando as figuras que estão no Menu de Relatórios e seus Itens
		jmuRelatorios.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\print.gif"));

		jmuiRelDespesas.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\DimDim.gif"));
		//jmuiRelConducao.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\Buss.gif"));
		//jmuiRelAlimentacao.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\Papa.gif"));

		//chamando as figuras que estão no Menu de Relatórios e seus Itens
		jmuOutros.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\outros.gif"));

		jmuiCalculadora.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\calc.gif"));
		jmuiSobre.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\sobre.gif"));
		jmuiAjuda.setIcon(new ImageIcon("C:\Adriana\Disk\TelaJava\help.gif"));

        //setando o JMenuBar
		jfraPrincipal.setJMenuBar(jmubItens);
		
		//adicionando os JMenuItens no JMenu Despesas 
		jmuDespesas.add(jmuiFixas);        
        jmuDespesas.add(jmuiExtras);
		jmuDespesas.add(jmuiConducao);
		jmuDespesas.add(jmuiAlimentacao);
		jmuDespesas.add(jsrSeparar);//adicionando o JSeparator
		jmuDespesas.add(jmuiSair);

		//adicionando os JMenuItens no JMenu Relatórios
		jmuRelatorios.add(jmuiRelDespesas);
		//jmuRelatorios.add(jmuiRelConducao);
		//jmuRelatorios.add(jmuiRelAlimentacao);

		//adicionando os JMenuItens no JMenu Outros
		jmuOutros.add(jmuiCalculadora);
		jmuOutros.add(jmuiSobre);
		jmuOutros.add(jmuiAjuda);

        //adicionando o JMenu no JMenuBar
		jmubItens.add(jmuDespesas); 
		jmubItens.add(jmuRelatorios);
		jmubItens.add(jmuOutros);
		
		jdskPrincipal.setLayout(null);
		jfraPrincipal.getContentPane().add(jdskPrincipal); 
		jdskPrincipal.setBackground(Color.lightGray);
		
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        jfraPrincipal.setSize(new Dimension(400, 300));
        jfraPrincipal.setLocation((screenSize.width-401)/2,(screenSize.height-300)/2);	

		//mostra a Tela
		jfraPrincipal.show();		

		//após mostrar a figura do Splash, mostra o JFrame
		Splash.retornaInstancia().Fim(); 

		//fazendo a ação do Fechar a Tela pelo Menu Sair
		jmuiSair.addActionListener(new ActionListener()
		{
			 public void actionPerformed(ActionEvent e)
			 {				  
				  JOptionPane.showMessageDialog(null,"Esta aplicação está sendo encerrada!!", "Controle de Gastos", JOptionPane.WARNING_MESSAGE);									  
				  System.exit(0);
			 }
		});	
		
		//fazendo a chamada do JMenuItem ddas Despesas Fixas
		jmuiFixas.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				try 
				{
					Runtime.getRuntime().exec( "cmd /C c:\Adriana\Disk\excel.xls" ); 					
				}
					catch (IOException execIO) 
					{
						System.out.println("Nao foi possivel enviar -> " + execIO);
					}
			}
		});

		//fazendo a chamada do JMenuItem ddas Despesas Extras
		jmuiExtras.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				try 
				{
					Runtime.getRuntime().exec( "cmd /C c:\Adriana\Disk\excel.xls" ); 					
				}
					catch (IOException execIO) 
					{
						System.out.println("Nao foi possivel enviar -> " + execIO);
					}
			}
		});

		//fazendo a chamada do JMenuItem ddas Despesas de Alimentação
		jmuiAlimentacao.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				try 
				{
					Runtime.getRuntime().exec( "cmd /C c:\Adriana\Disk\excel.xls" ); 					
				}
					catch (IOException execIO) 
					{
						System.out.println("Nao foi possivel enviar -> " + execIO);
					}
			}
		});

		//fazendo a chamada do JMenuItem ddas Despesas Fixas
		jmuiCalculadora.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				try 
				{
					Runtime.getRuntime().exec("C:\WINNT\System32\calc.exe");
				}
					catch (IOException excIO) 
					{
						System.out.println("Nao foi possivel enviar -> " + excIO);
					}
			}
		});	

		jmuiSobre.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{					
				
				TelaSobre Sobre = new TelaSobre(); //instancia a tela TelaSobre
				
				jdskPrincipal.add(Sobre.jfriSobre); //adiciona a tela no desktop
				
			}
		});
		
    }//fim do construtor
    
    //Fecha a Tela pelo "X"
    private void exitForm(WindowEvent evt)
	{
        System.exit(0);
    }      

}//fim da classe

Valeu!

Tenta assim, dentro do seu evento que executa a chamada ao JInternalFrame coloca assim

teste t = new teste(); aqui seria a instância do seu JInternalFrame(é só adaptar; getContentPane().add(t); t.show(); aqui eu não lembro se precisa porque já tem o setVisible dentro do bloco try/catch try{ setVisible(true); setSelected(true); } catch(PropertyVetoException pve){ } }

Oi, Luiz_ross!

Modifiquei a chamada do internalframe, mas mesmo assim continua não aparecendo a minha tela, não estou conseguindo ver onde pode estar o erro, pois ele entra, chama o show, passa pelo principal e pelo internalframe e mesmo assim não mostra a tela para vizualização. Vc saberia o pq? :cry:

Fiz assim:

jmuiSobre.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{				
				TelaSobre Sobre = new TelaSobre(); //instancia a tela TelaSobre				
				jdskPrincipal.add(Sobre.jfriSobre); //adiciona a tela no desktop				
				
				try
				{
					//seleciona o JInternalFrame
					Sobre.jfriSobre.setVisible(true);    
					Sobre.jfriSobre.setSelected(true);
				}
				catch (PropertyVetoException excPVeto) 
				{
				}
				jmuiSobre.setEnabled(true);
			}
		});

Valeu!

[quote=“Ray of Light”]

jmuiSobre.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{				
				TelaSobre Sobre = new TelaSobre(); //instancia a tela TelaSobre				
				jdskPrincipal.add(Sobre.jfriSobre); //adiciona a tela no desktop				
				
				try
				{
					//seleciona o JInternalFrame
					Sobre.jfriSobre.setVisible(true);    
					Sobre.jfriSobre.setSelected(true);
				}
				catch (PropertyVetoException excPVeto) 
				{
				}
				jmuiSobre.setEnabled(true);
			}
		});

Valeu![/quote]

Cadê a linha? [code]
getContentPane().add(jDesktopPane1);
//essa linha adiciona seu DesktopPane ao ContentPane e ela deve ficar aqui depois dessas linhas
private void initComponents()
{//início do construtor

  jfraPrincipal = new JFrame(); 
  jdskPrincipal = new JDesktopPane(); 

[/code]
e antes da linha

jdskPrincipal.add(Sobre.jfriSobre); //adiciona a tela no desktop	

coloca essa linha aqui

getContentPane().add(seuJInternalFrame);

Obrigada, deu certo aqui!

Valeu! :stuck_out_tongue: