Buen día a todos
Quisera saber si puedo invocar un panel desde otro panel con un boton, en una extension JFrame.
En el caso digamos que mi panel principal es el de PanelBiblioteca.java y con el botón que tiene incluido de Siguiente hacer que aparezca el segundo panel PanelUsuario.java, y con el de anterior lo contrario, que desaparezca y viceversa
Mis códigos son:
PanelBiblioteca.java
package biblioteca;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public final class PanelBiblioteca extends JFrame implements ActionListener {
JComboBox Año,Dia,Mes;
JLabel etiqNombre, etiqDireccion, etiqTelefono, etiqFNacim, etiqFInsc, etiqFVigen, etiqCodLib, etiqTitLib, etiqAutores, etiqISB, etiqEditorial, etiqAñoImpr, etiqNumCopias;
JTextField txtNombre, txtDireccion, txtTelefono, txtFNacim, txtFInsc, txtFVigen, txtCodLib, txtTitLib, txtAutores, txtISB, txtEditorial, txtAñoImpr, txtNumCopias, txtBuscar;
JButton BtnGuardar, BtnNuevo, BtnEliminar, BtnSalir, BtnBuscar,BtnSiguiente,BtnAnterior;;
JPanel panel;
private String [] dias={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
private Libro resultado;
private Persona usuario;
private PanelUsuario Us;
private String [] mes = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
private String[] año = {"2021","2022","2023","2024","2025","2026","2027","2028","2029","2030"};
PanelBiblioteca(){
resultado = new Libro();
usuario = new Persona();
Us = new PanelUsuario();
//Listas despegables
Mes= new JComboBox(mes);
Mes.setBounds(870, 52, 70, 20);
Dia= new JComboBox(dias);
Dia.setBounds(830, 52, 40, 20);
Año= new JComboBox(año);
Año.setBounds(940, 52, 70, 20);
//Etiquetas
etiqNombre = new JLabel("Nombre");
etiqNombre.setBounds(130, 30, 50, 20);
etiqDireccion = new JLabel("Direccion");
etiqDireccion.setBounds(245, 30, 70, 20);
etiqAutores = new JLabel("Autor(es)");
etiqAutores.setBounds(305, 100, 120, 20);
etiqTelefono = new JLabel("Teléfono");
etiqTelefono.setBounds(370, 30, 70, 20);
etiqFNacim = new JLabel("Fecha de Nacimiento");
etiqFNacim.setBounds(450, 30, 120, 20);
txtFNacim = new JTextField();
txtFNacim.setBounds(460, 55, 100, 20);
etiqFInsc = new JLabel("Fecha de Inscripción");
etiqFInsc.setBounds(650, 30, 120, 20);
etiqFVigen = new JLabel("Fecha de Vigencia");
etiqFVigen.setBounds(850, 30, 120, 20);
etiqCodLib = new JLabel("Código de Libro");
etiqCodLib.setBounds(45, 100, 120, 20);
etiqTitLib = new JLabel("Titulo");
etiqTitLib.setBounds(193, 100, 120, 20);
etiqISB = new JLabel("ISB");
etiqISB.setBounds(443, 100, 120, 20);
etiqEditorial = new JLabel("Editorial");
etiqEditorial.setBounds(550, 100, 120, 20);
etiqAñoImpr = new JLabel("Año de Impresión");
etiqAñoImpr.setBounds(640, 100, 120, 20);
etiqNumCopias = new JLabel("Número de Copias");
etiqNumCopias.setBounds(758, 100, 120, 20);
//Campos de texto
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
txtDireccion = new JTextField();
txtDireccion.setBounds(220, 55, 100, 20);
txtNombre = new JTextField();
txtNombre.setBounds(100, 55, 100, 20);
txtCodLib = new JTextField();
txtCodLib.setBounds(40, 125, 100, 20);
txtTitLib = new JTextField();
txtTitLib.setBounds(160, 125, 100, 20);
txtAutores = new JTextField();
txtAutores.setBounds(280, 125, 100, 20);
txtISB = new JTextField();
txtISB.setBounds(400, 125, 100, 20);
txtEditorial = new JTextField();
txtEditorial.setBounds(520, 125, 100, 20);
txtAñoImpr = new JTextField();
txtAñoImpr.setBounds(640, 125, 100, 20);
txtBuscar = new JTextField();
txtBuscar.setBounds(400, 270, 100, 20);
txtNumCopias = new JTextField();
txtNumCopias.setBounds(760, 125, 100, 20);
//Botones
BtnGuardar = new JButton("Guardar");
BtnGuardar.setBounds(230, 200, 80, 20);
BtnGuardar.addActionListener(this);
BtnNuevo = new JButton("Nuevo");
BtnNuevo.setBounds(350, 200, 80, 20);
BtnNuevo.addActionListener(this);
BtnEliminar = new JButton("Eliminar");
BtnEliminar.setBounds(470, 200, 80, 20);
BtnSalir = new JButton("Salir");
BtnSalir.setBounds(590, 200, 80, 20);
BtnSalir.addActionListener(this);
BtnBuscar = new JButton("Buscar");
BtnBuscar.setBounds(410, 300, 80, 20);
BtnBuscar.addActionListener(this);
BtnSiguiente = new JButton("Siguiente");
BtnSiguiente.setBounds(430, 330, 80, 20);
BtnSiguiente.addActionListener(this);
BtnAnterior = new JButton("Anterior");
BtnAnterior.setBounds(240, 330, 80, 20);
BtnAnterior.addActionListener(this);
//Ventanas
panel = new JPanel();
panel.setLayout(null);
//Panel1
//Etiquetas añadidas al panel
panel.add(etiqNombre);
panel.add(etiqDireccion);
panel.add(etiqTelefono);
panel.add(etiqFNacim);
panel.add(etiqFInsc);
panel.add(etiqFVigen);
panel.add(etiqCodLib);
panel.add(etiqTitLib);
panel.add(etiqAutores);
panel.add(etiqISB);
panel.add(etiqEditorial);
panel.add(etiqAñoImpr);
panel.add(etiqNumCopias);
//Campos de texto añadidos al panel
panel.add(txtNombre);
panel.add(txtDireccion);
panel.add(txtTelefono);
panel.add(txtFNacim);
panel.add(txtCodLib);
panel.add(txtTitLib);
panel.add(txtAutores);
panel.add(txtISB);
panel.add(txtEditorial);
panel.add(txtAñoImpr);
panel.add(txtNumCopias);
panel.add(txtBuscar);
//Botones añadidos al panel
panel.add(BtnGuardar);
panel.add(BtnNuevo);
panel.add(BtnEliminar);
panel.add(BtnSalir);
panel.add(BtnBuscar);
panel.add(BtnSiguiente);
panel.add(BtnAnterior);
//Listas desplegables añadidas al panel
panel.add(Mes);
panel.add(Dia);
panel.add(Año);
panel.add(Us.panel2);
setTitle(" BIBLIOTECA CENTRAL");
add(panel);
setSize(1100, 400);
setVisible(true);
}
public static void main(String[] args) {
new PanelBiblioteca();
}//cerrar main
public void actionPerformed(ActionEvent e) {
String c,t,a,ed,I,an,cop;
t=txtTitLib.getText();
c=txtCodLib.getText();
a=txtAutores.getText();
ed=txtEditorial.getText();
I=txtISB.getText();
an=txtAñoImpr.getText();
cop=txtNumCopias.getText();
Mes.getAction();
Dia.getAction();
if(e.getSource()==BtnGuardar) {
}if(e.getSource()==BtnBuscar) {
}
}if(e.getSource()==BtnNuevo) {
txtCodLib.setText("");
txtNombre.setText("");
txtAutores.setText("");
txtTitLib.setText("");
txtEditorial.setText("");
txtISB.setText("");
txtNumCopias.setText("");
txtAñoImpr.setText("");
Mes.setAction(null);
Dia.setAction(null);
}if(e.getSource()==BtnSalir) {
System.exit(0);
if(e.getSource()==BtnSiguiente) {
panel.setVisible(false);
Us.panel2.setVisible(true);
}
}
}
}
PanelUsuario.java
package biblioteca;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class PanelUsuario extends JFrame implements ActionListener {
JComboBox Año2,Dia2,Mes2;
JLabel etiqNombre, etiqDireccion, etiqTelefono, etiqFNacim, etiqFInsc, etiqFVigen;
JTextField txtNombre, txtDireccion, txtTelefono, txtFNacim, txtFInsc, txtFVigen,txtBuscar;
JButton BtnGuardar, BtnNuevo, BtnEliminar,BtnBuscar,BtnSiguiente,BtnAnterior;
JPanel panel2;
private String [] dias={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
private Libro resultado;
private Persona usuario;
private PanelBiblioteca library;
private String [] mes = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
private String[] año = {"2021","2022","2023","2024","2025","2026","2027","2028","2029","2030"};
PanelUsuario(){
resultado = new Libro();
usuario = new Persona();
//Listas despegables
Mes2= new JComboBox(mes);
Mes2.setBounds(870, 52, 70, 20);
Dia2= new JComboBox(dias);
Dia2.setBounds(830, 52, 40, 20);
Año2= new JComboBox(año);
Año2.setBounds(940, 52, 70, 20);
//Etiquetas
etiqNombre = new JLabel("Nombre");
etiqNombre.setBounds(130, 30, 50, 20);
etiqDireccion = new JLabel("Direccion");
etiqDireccion.setBounds(245, 30, 70, 20);
etiqTelefono = new JLabel("Teléfono");
etiqTelefono.setBounds(370, 30, 70, 20);
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
etiqFNacim = new JLabel("Fecha de Nacimiento");
etiqFNacim.setBounds(450, 30, 120, 20);
txtFNacim = new JTextField();
txtFNacim.setBounds(460, 55, 100, 20);
etiqFInsc = new JLabel("Fecha de Inscripción");
etiqFInsc.setBounds(650, 30, 120, 20);
etiqFVigen = new JLabel("Fecha de Vigencia");
etiqFVigen.setBounds(850, 30, 120, 20);
//Campos de texto
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
txtDireccion = new JTextField();
txtDireccion.setBounds(220, 55, 100, 20);
txtNombre = new JTextField();
txtNombre.setBounds(100, 55, 100, 20);
txtBuscar = new JTextField();
txtBuscar.setBounds(400, 270, 100, 20);
//Botones
BtnGuardar = new JButton("Guardar");
BtnGuardar.setBounds(230, 200, 80, 20);
BtnGuardar.addActionListener(this);
BtnNuevo = new JButton("Nuevo");
BtnNuevo.setBounds(350, 200, 80, 20);
BtnNuevo.addActionListener(this);
BtnEliminar = new JButton("Eliminar");
BtnEliminar.setBounds(470, 200, 80, 20);
BtnBuscar = new JButton("Buscar");
BtnBuscar.setBounds(410, 300, 80, 20);
BtnBuscar.addActionListener(this);
BtnSiguiente = new JButton("Siguiente");
BtnSiguiente.setBounds(430, 330, 80, 20);
BtnSiguiente.addActionListener(this);
BtnAnterior = new JButton("Anterior");
BtnAnterior.setBounds(240, 330, 80, 20);
BtnAnterior.addActionListener(this);
panel2= new JPanel();
panel2.setLayout(null);
//Etiquetas añadidas al panel
panel2.add(etiqNombre);
panel2.add(etiqDireccion);
panel2.add(etiqTelefono);
panel2.add(etiqFNacim);
panel2.add(etiqFInsc);
panel2.add(etiqFVigen);
//Campos de texto añadidos al panel
panel2.add(txtNombre);
panel2.add(txtDireccion);
panel2.add(txtTelefono);
panel2.add(txtBuscar);
//Botones añadidos al panel
panel2.add(BtnGuardar);
panel2.add(BtnNuevo);
panel2.add(BtnEliminar);
panel2.add(BtnBuscar);
panel2.add(BtnSiguiente);
panel2.add(BtnAnterior);
//Listas desplegables añadidas al panel
panel2.add(Mes2);
panel2.add(Dia2);
panel2.add(Año2);
panel2.add(Mes2);
panel2.add(Dia2);
panel2.add(Año2);
setTitle(" Usuarios");
add(panel2);
setSize(1000, 400);
setVisible(false);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==BtnAnterior) {
library.panel.setVisible(false);
panel2.setVisible(true);
library.add(panel2);
library.validate();
}
}
}