Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/04/2013, 11:17
daoruga
 
Fecha de Ingreso: enero-2013
Mensajes: 54
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Cambiar JPanel desde menú JFrame

Estoy probando con una Ventana sencilla y este es el código
Cita:
package pruebas;

import java.awt.BorderLayout;

public class Principal extends JFrame {

private JPanel contentPane;
static Principal frame;

Panel_1 panel_1 = new Panel_1();
Panel_2 panel_2 = new Panel_2();

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

public Principal() {

setTitle("Ventana Principal");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);

JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);

JMenu mnNewMenu = new JMenu("Panel");
menuBar.add(mnNewMenu);

JMenuItem mntmPanel = new JMenuItem("Panel 1");
mntmPanel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
frame.getContentPane().remove(panel_2);
frame.getContentPane().add(panel_1);
frame.repaint();
}
});
mnNewMenu.add(mntmPanel);

JMenuItem mntmPanel_1 = new JMenuItem("Panel 2");
mntmPanel_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.getContentPane().remove(panel_1);
frame.getContentPane().add(panel_2);
frame.repaint();
}
});
mnNewMenu.add(mntmPanel_1);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);

}

}