Hacer que aparezca otra ventana

Quiero abrir una nueva ventana al hacer click en un JMenuItem que ya tengo previamente creado.
Respuesta
1
Pues depende de como trabajes, pero normalmente lo puedes hacer con un dialog o como otro JFrame lo que haces es hacer que una clase herede del JFrame y cuando das click en el evento de este declaras un nuevo objeto de esa clase. Así Como new Segundo(). Setvisible(true); Segundo es la clase que extiende de JFrame.
Tengo el siguiente código, lo que quiero es que al hacer click en el JMenuItem de jmnitemgrupo, me aparezca la otra ventana donde se llenan los datos, la otra ventana tiene el nombre de Crear Grupo, por favor colaborame
package principal;
public class ventanaprincipal extends javax.swing.JFrame
{
      public ventanaprincipal()
      {
            setSize(600,500);
            setTitle("SIAB (Soluciones Informáticas de Almacenes y Bodegas)");
            initComponents();
      }
      private void initComponents()
      {
            jmbarbarrademenus = new javax.swing.JMenuBar();
            jmnarchivo = new javax.swing.JMenu();
            jmnmateriales= new javax.swing.JMenu();
            jmnbodegas = new javax.swing.JMenu();
            jmnmovimiento = new javax.swing.JMenu();
            jmnconsultas= new javax.swing.JMenu();
            jseparador1 = new javax.swing.JSeparator();
            jmnitemsalir= new javax.swing.JMenuItem();
            jmnitemgrupo=new javax.swing.JMenuItem();
            jmnitemsubgrupo=new javax.swing.JMenuItem();
            jmnitemmateriales=new javax.swing.JMenuItem();
            jmnitemvermateriales=new javax.swing.JMenuItem();
            jmniteminventariofinal= new javax.swing.JMenuItem();
            jmnitemstock = new javax.swing.JMenuItem();
            getContentPane().setLayout(null);
            addWindowListener (new java.awt.event.WindowAdapter()
            {
                  public void windowClosing (java.awt.event.WindowEvent evt)
                  {
                        exitForm(evt);
                  }
            });
            jmbarbarrademenus.add(jmnarchivo);
            jmbarbarrademenus.add(jmnmateriales);
            jmbarbarrademenus.add(jmnbodegas);
            jmbarbarrademenus.add(jmnmovimiento);
            jmbarbarrademenus.add(jmnconsultas);
            jmnarchivo.add(jmnitemsalir);
            jmnmateriales.add(jmnitemgrupo);
            jmnmateriales.add(jmnitemsubgrupo);
            jmnmateriales.add(jmnitemmateriales);
            jmnmateriales.add(jmnitemvermateriales);
            jmnbodegas.add(jmnitemcrearbodegas);
            jmnbodegas.add(jmnitemverbodegas);
            jmnmovimiento.add(jmniteminventarioinicial);
            jmnmovimiento.add(jmnitemsalidamateriales);
            jmnmovimiento.add(jmnitementradamateriales);
            jmnconsultas.add(jmniteminventariofinal);
            jmnconsultas.add(jmnitemstock);
            jmnarchivo.setMnemonic('a');
            jmnarchivo.setText("archivo");
            jmnmateriales.setMnemonic('m');
            jmnmateriales.setText("materiales");
            jmnbodegas.setMnemonic('b');
            jmnbodegas.setText("Bodegas");
            jmnmovimiento.setMnemonic('o');
            jmnmovimiento.setText("movimiento");
            jmnconsultas.setMnemonic('c');
            jmnconsultas.setText("Consultas");
            jmnitemsalir.setMnemonic('s');
            jmnitemsalir.setText("salir");
            jmnitemgrupo.setMnemonic('c');
            jmnitemgrupo.setText("Crear Grupo");
 setJMenuBar(jmbarbarrademenus);
            jmnitemsalir.addActionListener(new java.awt.event.ActionListener()
            {
                  public void actionPerformed(java.awt.event.ActionEvent evt)
                  {
                        jmnitemsalirActionPerformed(evt);
                  }
            });
      }
      private javax.swing.JMenuBar jmbarbarrademenus;
      private javax.swing.JMenu jmnarchivo;
      private javax.swing.JMenu jmnmateriales;
      private javax.swing.JMenu jmnbodegas;
      private javax.swing.JMenu jmnmovimiento;
      private javax.swing.JMenu jmnconsultas;
      private javax.swing.JSeparator jseparador1;
      private javax.swing.JMenuItem jmnitemsalir;
      private javax.swing.JMenuItem jmnitemgrupo;
      private void exitForm (java.awt.event.WindowEvent evt)
      {
            System.exit(0);
      }
      private void jmnitemsalirActionPerformed(java.awt.event.ActionEvent evt)
      {
            System.exit(0);
      }
      public static void main(String[] args)
      {
            new ventanaprincipal().setVisible(true);
      }
}
bueno mira pues controlas el evento igual que haces con jmnitemsalir y ahi le das un System.exit(0) lo que hace es salirse, ahora lo que le tendrias que añadir es asi como lo que tienes en el metodo main que tienes un new ventanaprincipal().setVisible(true); entonces lo que tienes que cambiar es ventanaprincipal(), si la otra ventana como dices se llama CrearGrupo() entonces la instruccion seria new CrearGrupo().setVisible(true);
¿Entonces seria algo así?
Y otra pregunta, ¿cómo hago para ponerle una imagen de fondo a mi aplicación?
jmnitemgrupo.addActionListener(new java.awt.event.ActionListener()
            {
                  public void actionPerformed(java.awt.event.ActionEvent evt)
                  {
                        jmnitemgrupoActionPerformed(evt);
                  }
            });
//....
 private void jmnitemsalirActionPerformed(java.awt.event.ActionEvent evt)
      {
            new CrearGrupo().setvisible(true);
      }
Aja cabal, debería de funcionar, si no te funciona me avisas y los arreglamos.
ok vale voy a intentar.. ¿y no sabes como meterle una imagen de fondo a la aplicación?
http://cafelojano.wordpress.com/2007/07/20/jframe-con-imagen-de-fondo/
Te mando este link, porque la verdad yo he tratado hacerlo de una forma sencilla y nunca lo he logrado y por falta de tiempo nunca he investigado, pero un amigo probo ese código y si funciona, espero que te sirva y si no lo entiendes pues me preguntas.
Ok voy a ver si me funciona y te aviso...
Ok
Listo si me sirvió ahora probaré lo de la imagen haber si puedo... gracias
Esta bien, ya sabes cualquier pregunta por acá o si no a mi correo es [email protected]

1 respuesta más de otro experto

Respuesta

Podrías utilizar este código

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Ejemplo extends Frame
{
private Menu menu1;
private MenuBar menuBar1;
private MenuItem menuItem1;
public Ejemplo()
{
setSize(200,300);
menuBar1 = new MenuBar();
menu1 = new Menu();
menuItem1 = new MenuItem();
menu1.setLabel("Nuevo");
menuItem1.setLabel("Frame");
//El código de abajo sirve para que funcione el botón cerrar de la ventana
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
});
//Es aqui donde invocas al evento actionPerformed puedes escribir el codigo
//alli mismo pero es mas recomendable hacerlo desde otra funcion
//en nuestro caso escribiremos el codigo aqui mismo
menuItem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt)
{
Javax. Swing. JOptionPane. ShowMessageDialog(null,"Informacion","Hola", javax. Swing. JOptionPane.INFORMATION_MESSAGE);
}
});
menu1.add(menuItem1);
menuBar1.add(menu1);
setMenuBar(menuBar1);
}
public static void main(String args[])
{
Ejemplo e=new Ejemplo();
e.setVisible(true);
}
}import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Ejemplo extends Frame
{
private Menu menu1;
private MenuBar menuBar1;
private MenuItem menuItem1;
public Ejemplo()
{
setSize(200,300);
menuBar1 = new MenuBar();
menu1 = new Menu();
menuItem1 = new MenuItem();
menu1.setLabel("Nuevo");
menuItem1.setLabel("Frame");
//El codigo de abajo sirve para que funcione el boton cerrar de la bentana
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
});
//Es aqui donde invocas al evento actionPerformed puedes escribir el codigo
//alli mismo pero es mas recomendable hacerlo desde otra funcion
//en nuestro caso escribiremos el codigo aqui mismo
menuItem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt)
{
Javax. Swing. JOptionPane. ShowMessageDialog(null,"Informacion","Hola", javax. Swing. JOptionPane.INFORMATION_MESSAGE);
}
});
menu1.add(menuItem1);
menuBar1.add(menu1);
setMenuBar(menuBar1);
}
public static void main(String args[])
{
Ejemplo e=new Ejemplo();
e.setVisible(true);
}
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas