mira lo que quiero hacer es que cuando le de mas de 2 veces click a el menu Directorio - Cliente, me aparece mas de un frame interno, y si le vuelvo a dar click me aparece otra ves la ventana y asi se va, lo que quiero es que cuando le de click de nuevo al menu no muestre otra ves la ventana.
aqui dejo un codigo con el que estoy practicado,
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class inicial extends JFrame {
private JDesktopPane elEscritorio;
// configurar GUI
public inicial()
{
super( "Uso de objetos JMenu" );
elEscritorio = new JDesktopPane();
getContentPane().add( elEscritorio );
// UIManager.setLookAndFeel( new com.nilo.plaf.nimrod.NimRODLookAndFeel());
// establecer menú Archivo y sus elementos de menú
JMenu menuArchivo = new JMenu( "Archivo" );
menuArchivo.setMnemonic( 'A' );
// establecer elemento de menú Acerca de...
JMenuItem elementoAcerca = new JMenuItem( "Acerca de..." );
elementoAcerca.setMnemonic( 'c' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(
new ActionListener() { // clase interna anónima
// mostrar cuadro de diálogo de mensaje cuando el usuario seleccione Acerca de...
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog( inicial.this,
"Éste es un ejemplo\ndel uso de menús",
"Acerca de", JOptionPane.PLAIN_MESSAGE );
}
} // fin de la clase interna anónima
); // fin de la llamada a addActionListener
// establecer elemento de menú Salir
JMenuItem elementoSalir = new JMenuItem( "Salir" );
elementoSalir.setMnemonic( 'S' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(
new ActionListener() { // clase interna anónima
// terminar la aplicación cuando el usuario haga clic en elementoSalir
public void actionPerformed( ActionEvent evento )
{
System.exit( 0 );
}
} // fin de la clase interna anónima
); // fin de la llamada a addActionListener
// crear barra de menús y adjuntarla a la ventana PruebaMenu
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
//**********************************************************
JMenu menuDirectorio = new JMenu( "Directorio" );
menuArchivo.setMnemonic( 'D' );
JMenuItem clientes = new JMenuItem( "Clientes" );
clientes.setMnemonic( 'C' );
menuDirectorio.add( clientes );
clientes.addActionListener(
new ActionListener() { // clase interna anónima
// mostrar nueva ventana interna
public void actionPerformed( ActionEvent evento ) {
// crear marco interno
JInternalFrame marco = new JInternalFrame(
"Creacion de Clientes", true, true, true, true );
// adjuntar panel al panel de contenido del marco interno
MiJPanel panel = new MiJPanel();
marco.getContentPane().add( panel, BorderLayout.CENTER );
// establecer tamaño de marco interno en el tamaño de su contenido
marco.pack();
// adjuntar marco interno al escritorio y mostrarlo
elEscritorio.add( marco );
marco.setVisible( true );
}
} // fin de la clase interna anónima
); // fin de la llamada a addActionListener
JMenuItem aerolineas = new JMenuItem( "Aerolineas" );
aerolineas.setMnemonic( 'A' );
menuDirectorio.add( aerolineas );
barra.add( menuDirectorio );
//***********************************************************
JMenu menuConsultas = new JMenu( "Consultas" );
menuConsultas.setMnemonic( 'o' );
JMenuItem directorio = new JMenuItem( "Directorio" );
directorio.setMnemonic( 'd' );
menuConsultas.add( directorio );
JMenuItem movimiento = new JMenuItem( "Movimientos" );
movimiento.setMnemonic( 'm' );
menuConsultas.add( movimiento );
barra.add( menuConsultas );
//***********************************************************
JMenu menuInformes = new JMenu( "Informes" );
menuConsultas.setMnemonic( 'I' );
//----------------------------------------------------------
JMenu cartera = new JMenu( "Cartera" );
cartera.setMnemonic( 'c' );
JMenuItem Dirclientes = new JMenuItem( "Directorio de Clientes" );
Dirclientes.setMnemonic( 'D' );
cartera.add( Dirclientes );
JMenuItem EstaCartera = new JMenuItem( "Estado de Cartera" );
EstaCartera.setMnemonic( 'E' );
cartera.add( EstaCartera );
JMenuItem EstaDetalllado = new JMenuItem( "Estado Detallado" );
EstaDetalllado.setMnemonic( 'd' );
cartera.add( EstaDetalllado );
JMenuItem MovCarte = new JMenuItem( "Movimiento de Cartera" );
MovCarte.setMnemonic( 'M' );
cartera.add( MovCarte );
JMenuItem MovDetalla = new JMenuItem( "Movimiento Detallado" );
MovDetalla.setMnemonic( 'e' );
cartera.add( MovDetalla );
menuInformes.add( cartera );
//----------------------------------------------------------
JMenu facturas = new JMenu( "Facturas" );
facturas.setMnemonic( 'f' );
JMenuItem Concfact = new JMenuItem( "Concecutivo de Facturas" );
Concfact.setMnemonic( 'C' );
facturas.add( Concfact );
JMenuItem Factanula = new JMenuItem( "Facturas Anuladas" );
Factanula.setMnemonic( 'F' );
facturas.add( Factanula );
JMenuItem Movfact = new JMenuItem( "Movimiento de Facturas" );
Movfact.setMnemonic( 'M' );
facturas.add( Movfact );
JMenuItem Movdetalla = new JMenuItem( "Movimiento Detallado" );
Movdetalla.setMnemonic( 'D' );
facturas.add( Movdetalla );
menuInformes.add( facturas );
//------------------------------------------------------------
JMenu Infaerolineas = new JMenu( "Aerolineas" );
Infaerolineas.setMnemonic( 'a' );
JMenuItem Dirairlines = new JMenuItem( "Directorio de Aeolineas" );
Dirairlines.setMnemonic( 'D' );
Infaerolineas.add( Dirairlines );
JMenuItem Movairlines = new JMenuItem( "Movimiento de Aerolineas" );
Movairlines.setMnemonic( 'M' );
Infaerolineas.add( Movairlines );
menuInformes.add( Infaerolineas );
//------------------------------------------------------------
JMenuItem auditoria = new JMenuItem( "Auditoria" );
auditoria.setMnemonic( 'u' );
menuInformes.add( auditoria );
//------------------------------------------------------------
JMenu SABRE = new JMenu( "SABRE" );
SABRE.setMnemonic( 'S' );
JMenuItem Records = new JMenuItem( "Records" );
Records.setMnemonic( 'R' );
SABRE.add( Records );
JMenuItem MovSABRE = new JMenuItem( "Movimiento de Facturas" );
MovSABRE.setMnemonic( 'M' );
SABRE.add( MovSABRE );
JMenuItem FactanulaSABRE = new JMenuItem( "Facturas Anuladas" );
FactanulaSABRE.setMnemonic( 'F' );
SABRE.add( FactanulaSABRE );
menuInformes.add( SABRE );
barra.add( menuInformes );
//***********************************************************
JMenu menuContabilizacion = new JMenu( "Contabilizacion" );
menuContabilizacion.setMnemonic( 'C' );
JMenuItem Defconcep = new JMenuItem( "Definicion de Conceptos" );
Defconcep.setMnemonic( 'D' );
menuContabilizacion.add( Defconcep );
JMenuItem Export = new JMenuItem( "Exportar Informacion" );
Export.setMnemonic( 'E' );
menuContabilizacion.add( Export );
barra.add( menuContabilizacion );
//***********************************************************
JMenu menuConfigura = new JMenu( "Configuracion" );
menuConsultas.setMnemonic( 'f' );
JMenuItem configGene = new JMenuItem( "Configuracion General" );
configGene.setMnemonic( 'C' );
menuConfigura.add( configGene );
JMenuItem parSABRE = new JMenuItem( "Parametros de SABRE" );
parSABRE.setMnemonic( 's' );
menuConfigura.add( parSABRE );
barra.add( menuConfigura );
getContentPane().setBackground( Color.CYAN );
setSize( 800, 600 );
setVisible( true );
} // fin del constructor
//Read more:
http://foro.elhacker.net/java/guardar_accion_con_el_comando_jinternalframe-t227332.0.html#ixzz0xx8EnKSs/ @SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main( String args[] )
{
inicial aplicacion = new inicial();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
//Read more:
http://foro.elhacker.net/java/guardar_accion_con_el_comando_jinternalframe-t227332.0.html#ixzz0xx8Lr01e // Variables declaration - do not modify
// End of variables declaration
public class MiJPanel extends JPanel {
private Container contenedor;
private GridBagLayout esquema;
private GridBagConstraints restricciones;
// cargar imagen
public MiJPanel()
{
contenedor = new Container();
esquema = new GridBagLayout();
contenedor.setLayout( esquema );
// instanciar restricciones de GridBagLayout
restricciones = new GridBagConstraints();
// crear componentes de GUI
JLabel id = new JLabel("Identificacion");
JLabel Nombre = new JLabel("Nombre");
JLabel Direccion = new JLabel("Direccion");
JLabel Telefono = new JLabel("Telefono");
JLabel email = new JLabel("email");
JLabel tipo = new JLabel("Tipo");
JTextField tid = new JTextField( "", 10 );
JTextField tnombre = new JTextField( "", 20 );
JTextField tdireccion = new JTextField( "",20 );
JTextField ttelefono = new JTextField( "",10 );
JTextField temail = new JTextField( "",10 );
String nombres[] = { "Cedula de Ciudadania", "NIT", "Tarjeta de Identidad" };
JComboBox cuadroCombinado = new JComboBox( nombres );
JButton Aceptar = new JButton( "Aceptar" );
JButton Cancelar = new JButton( "Cancelar" );
restricciones.weightx = 0;
restricciones.weighty = 0;
restricciones.fill = GridBagConstraints.BOTH;
agregarComponente( id, 0, 0, 1, 1 );
agregarComponente( Nombre, 1, 0, 1, 1 );
agregarComponente( Direccion, 2, 0, 1, 1 );
agregarComponente( Telefono, 3, 0, 1, 1 );
agregarComponente( email, 3, 2, 1, 1 );
agregarComponente( tipo, 0, 2, 1, 1 );
agregarComponente( tid, 0, 1, 1, 1 );
agregarComponente( tnombre, 1, 1, 4, 1 );
agregarComponente( tdireccion, 2, 1, 4, 1 );
agregarComponente( ttelefono, 3, 1, 1, 1 );
agregarComponente( temail, 3, 3, 1, 1 );
agregarComponente( cuadroCombinado, 0, 3, 1, 1 );
add(contenedor);
setSize( 100, 150 );
setVisible( true );
}
public Dimension getPreferredSize()
{
return new Dimension( 640,480 );
}
private void agregarComponente( Component componente,
int fila, int columna, int anchura, int altura )
{
// establecer gridx y gridy
restricciones.gridx = columna;
restricciones.gridy = fila;
// establecer gridwidth y gridheight
restricciones.gridwidth = anchura;
restricciones.gridheight = altura;
// establecer restricciones y agregar componente
esquema.setConstraints( componente, restricciones );
contenedor.add( componente );
}// fin de la clase MiJPanel
}
} // fin de la clase PruebaMenu
si miras cuando le doy click a ese menu Directorio-Cliente, siguen aparesiendo ventanas, y es eso lo que no quiero, quiero que solo aparezca unaves o que aparezca cuando la ventana clientes este cerrada, espero haberme echo entender, gracias