Apenas um JInternalFrame aberto

Galera estou mandando uma parte do código e gostaria de saber como posso fazer para abrir apenas uma JInternalFrame.
Alguém poderia dar uma ajudinha ae?

private JMenu getJMenuTabela() {
	if (jMenuTabela == null) {
		jMenuTabela = new JMenu();
		jMenuTabela.setText("Tabela");
		jMenuTabela.setPreferredSize(new Dimension(50, 20));
		jMenuTabela.setMnemonic(KeyEvent.VK_T);
		jMenuTabela.setFont(new Font("Arial", Font.PLAIN, 12));
		jMenuTabela.add(getJMenuItemJanela1(null));
                jMenuTabela.add(getJMenuItemJanela2(null));
	} //fim if
	return jMenuTabela;
}
	
//Aki é o menuItem onde to tentando chama abrir a Janela1
private JMenuItem getJMenuItemJanela1(final JInternalFrame jiframe) {
	if (jMenuItemJanela1 == null) {
		jMenuItemJanela1 = new JMenuItem();
		jMenuItemJanela1.setText("Janela 1");
		jMenuItemJanela1.setFont(new Font("Arial", Font.PLAIN, 12));
		jMenuItemJanela1.setMnemonic(KeyEvent.VK_C);
		jMenuItemJanela1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent ae) {
 
                                //Chama o método para abrir frame
				AbrirFrame(jiframe);

                                Janela1 janela1 = new Janela1(); 
				janela1.setLocation(fx,fy);      
				fx += 30; 
				fy += 30;     
				try {  
					janela1.setSelected(true);   
				} catch (PropertyVetoException pve) {
					pve.printStackTrace();
				} 
			} 
		}); 
	} 
	return jMenuItemJanela1;
}


//Aki é o menuItem onde to tentando chama abrir a Janela2
private JMenuItem getJMenuItemJanela2(final JInternalFrame jiframe) {
	if (jMenuItemJanela2 == null) {
		jMenuItemJanela2 = new JMenuItem();
		jMenuItemJanela2.setText("Janela 1");
		jMenuItemJanela2.setFont(new Font("Arial", Font.PLAIN, 12));
		jMenuItemJanela2.setMnemonic(KeyEvent.VK_C);
		jMenuItemJanela2.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent ae) {
 
                                //Chama o método para abrir frame
				AbrirFrame(jiframe);

                                Janela2 janela2 = new Janela2(); 
				janela2.setLocation(fx,fy);      
				fx += 30; 
				fy += 30;     
				try {  
					janela2.setSelected(true);   
				} catch (PropertyVetoException pve) {
					pve.printStackTrace();
				} 
			} 
		}); 
	} 
	return jMenuItemJanela2;
}

//Método para verificar frame
private boolean ExisteJInternalFrame(JInternalFrame jiframe) {  
	JInternalFrame[] frames = jDesktopPane.getAllFrames();  
	for (int i = 0; i < frames.length; i++) {  
		if (frames[i].getName().equals(jiframe.getName()) ) {  
			return true;  
		}  
	}  
	return false;  
}  

//método para abrir frame
private void AbrirFrame(JInternalFrame jiframe) {
	if( ! ExisteJInternalFrame(jiframe) ) {    
		jDesktopPane.add(jiFrame); 
		jiFrame.setVisible( true );  
	}   
}

Vlws…

Se você precisa ter apenas um JInternalFrame aberto, não use JInternalFrame + JDesktopPane; crie um JTabbedPane que é muito mais fácil - ele só mostra uma coisa de cada vez.