Menu swing, Como lo hacerlo

Iniciado por Mr.Blue, 12 Febrero 2012, 00:14 AM

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

Mr.Blue

Hola tengo una consulta.

Necesito hacer el menu para la navegar en mi aplicacion de escritorio.
Estoy trabajando con capas y en la capa de la vista tengo un par de .java que son los formularios, cada uno de estos formularios tiene el menu.

De que manera puedo hacer para navegar entre las vistas?

Entiendo por un lado, de que una de las dos vistas tendria que iniciar(no puedo iniciar las dos al mismo tiempo) Por lo tanto una de estas es mi vista principal.

Para acceder a la otra vista como como tendria que hacer?

Se me ocurre que por ahi tendria que crear una nueva vista vacia con el menu, y a las otras dos vistas sacarle el menu (No me sirven ahi).
Y desde este menu vacio traer el formulario y cargarlo a esta vista vacia, de esta manera puedo variar los formularios en una sola vista.

Pero no sabria como hacerlo ya que mis dos vistas estan como seteadas para correr
con el ico este.
Esto lo digo por lo que dije antes de (no puedo iniciar las dos al mismo tiempo). :laugh:

Bueno creo que se entiende.
Espero sus respuestas =D saludos.







sapito169

-Si dejaras de pensar en java en función al ide y leyeras absolutamente todo el código que creas todos tus problemas se resolverían mágicamente y nunca más volverías a postear

El método mas fácil (puedo escribir 10 hojas solo de este tema pero nadie lo leería y no me entenderías)

1 debes tener un único formulario con que herede de JFrame a partir de ahora llamado principal

2 el resto de tus ventanas deben heredar de JDialog

4 Dentro el formulario principal creas bariables globales para todos tus formularios globales

3 le pones un jmenuBar en tu formulario principal y cada JmenuIten muestras un formulario auxiliar con este codigo

if (frmPersonal == null) {
frmPersonal = new FrmPersonal(this, true);
}
frmPersonal.setVisible(true);



ejemplo de fromulario principal




package org.springhispano.screancast01;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JToolBar;
import javax.swing.JButton;
import java.awt.FlowLayout;
import javax.swing.AbstractAction;
import java.awt.event.ActionEvent;
import javax.swing.Action;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;

public class FrmPrincipal extends JFrame {

FrmPersonal frmPersonal;

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmPrincipal frame = new FrmPrincipal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

public FrmPrincipal() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);

JMenuBar barPrincipal = new JMenuBar();
setJMenuBar(barPrincipal);

JMenu mnuRecursosHumanos = new JMenu("Recursos Humanos");
barPrincipal.add(mnuRecursosHumanos);

JMenu mnuPersonal = new JMenu("Personal");
mnuRecursosHumanos.add(mnuPersonal);

JMenuItem mnuRegistro = new JMenuItem("registro");
mnuRegistro.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mnuRegistro_actionPerformed(e);
}

});
mnuPersonal.add(mnuRegistro);
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));

JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.EAST);

JPanel panel_2 = new JPanel();
contentPane.add(panel_2, BorderLayout.WEST);

JPanel panel_3 = new JPanel();
contentPane.add(panel_3, BorderLayout.CENTER);

JPanel panel_4 = new JPanel();
contentPane.add(panel_4, BorderLayout.SOUTH);
}

private void mnuRegistro_actionPerformed(ActionEvent e) {
if (frmPersonal == null) {
frmPersonal = new FrmPersonal(this, true);
}
frmPersonal.setVisible(true);
}

}




package org.springhispano.screancast01;

import java.awt.BorderLayout;

public class FrmPersonal extends JDialog {

private final JPanel contentPanel = new JPanel();

/**
* Launch the application.
*/
public static void main(String[] args) {
try {
FrmPersonal dialog = new FrmPersonal(null,false);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* Create the dialog.
*/
public FrmPersonal(Frame owner, boolean modal) {
super(owner, modal);
setTitle("Personal");
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setLayout(new FlowLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
}

}



sapito169

porfavor respondeme aunque sea respuesta troll pero no me dejes solo si no me deprimo

MauroMasciar

Cita de: sapito169 en 13 Febrero 2012, 02:20 AM
porfavor respondeme aunque sea respuesta troll pero no me dejes solo si no me deprimo

O_O
:huh:
Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti

Twitter: @MauroMasciar

RyogiShiki

Cita de: sapito169 en 13 Febrero 2012, 02:20 AM
porfavor respondeme aunque sea respuesta troll pero no me dejes solo si no me deprimo

Cita de: MauroMasciar en 13 Febrero 2012, 05:20 AM
O_O
:huh:

Concuerdo con sapito169, suele ser frustrante no recibir respuesta después de tomarse el tiempo de elaborar una respuesta de calidad, además de quedarse con la intriga del haber o no funcionado, saber que errores se pudieron encontrar en la solución que se provee y más importante mejorar aun más la solución.

Saludos


MauroMasciar

CitarRespuesta #1 en: Ayer a las 22:13:40 »

Citar« Respuesta #2 en: Ayer a las 22:20:48 »

Estaba ansioso en saber si funciono...  :silbar:
Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti

Twitter: @MauroMasciar

Mr.Blue

Gracias por la respuesta, voy a probar lo que me dijistes.