JInternalFrame :S

Iniciado por porris, 29 Agosto 2010, 04:53 AM

0 Miembros y 1 Visitante están viendo este tema.

porris

Hola a todos, soy nuevo en este foro y en el mundo de Java y tengo una duda con el componente JInternalFrame.
no logro que cuando le de click a  un menu  o boton, me haga visible 1 y solo una ventana;osea que cuando le de click nuevamente en el mismo  menu o boton no haga visible otra ves la misma ventana que ya esta visible, al menos que le ventana este cerrada.
muchas gracias de ante mano

Leyer

#1
NO te entendi nada :xD explícate mas o tal vez coloca codigo

porris

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 :)

sapito169

#3
public class ventat extends JinternalFrame{
Ventanita v=null;
v.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE )
public void presionoMenu(){
if(ventanita!=null){
ventanita=new Ventanita();
}

if(!ventanita.isVisible()){
ventanita.setVisible(true);
}
}

}