Autor
|
Tema: Menu swing, Como lo hacerlo (Leído 4,270 veces)
|
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). Bueno creo que se entiende. Espero sus respuestas =D saludos.
|
|
|
En línea
|
|
|
|
sapito169
Desconectado
Mensajes: 628
|
-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); }
}
|
|
|
En línea
|
|
|
|
sapito169
Desconectado
Mensajes: 628
|
porfavor respondeme aunque sea respuesta troll pero no me dejes solo si no me deprimo
|
|
|
En línea
|
|
|
|
MauroMasciar
Desconectado
Mensajes: 567
|
porfavor respondeme aunque sea respuesta troll pero no me dejes solo si no me deprimo
O_O
|
|
|
En línea
|
Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti
Twitter: @MauroMasciar
|
|
|
RyogiShiki
Desconectado
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
porfavor respondeme aunque sea respuesta troll pero no me dejes solo si no me deprimo
O_O 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
|
|
|
En línea
|
|
|
|
MauroMasciar
Desconectado
Mensajes: 567
|
Respuesta #1 en: Ayer a las 22:13:40 » « Respuesta #2 en: Ayer a las 22:20:48 » Estaba ansioso en saber si funciono...
|
|
|
En línea
|
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.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
TV como hacerlo?
Programación Visual Basic
|
Zeroql
|
2
|
1,936
|
27 Septiembre 2006, 18:22 pm
por sircid
|
|
|
como lleno los datos que tiene un menu a otro menu vacio, en asp.net c#
.NET (C#, VB.NET, ASP)
|
ivan05f
|
2
|
3,771
|
8 Noviembre 2007, 18:58 pm
por ivan05f
|
|
|
Como Hacerlo ?
ASM
|
zxl009
|
3
|
3,574
|
21 Junio 2009, 00:51 am
por Karcrack
|
|
|
como hacerlo
Software
|
POWEROCK
|
1
|
4,802
|
13 Agosto 2009, 01:13 am
por braulio--
|
|
|
No se como hacerlo
« 1 2 3 »
Programación Visual Basic
|
SockMon
|
25
|
10,023
|
22 Agosto 2010, 20:03 pm
por Petro_Boca
|
|