Boa noite
Estou desenvolvendo um programa que cadastra funcionários e clientes. E queria trocar o JPanel do meu JFrame, mas não quero que os elementos do JPanel anterior existam, ou seja, não quero setar como “visível false”, quero que ele deixe de existir.
O evento deve acontecer quando eu clico em um botão do menu, com isso ele deverá alterar o JPanel do meu JFrame.
package Te;
import javax.swing.SwingUtilities;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JButton;
public class Teste implements ActionListener{
private JFrame jFrame = null; // @jve:decl-index=0:visual-constraint="197,17"
private JPanel jPanel = null;
private JMenuBar jJMenuBar = null;
private JMenu jMenu = null;
private JMenuItem jMenuItem = null;
private JPanel jPanelPrincipal = null;
private JButton jButton = null;
private JPanel jPanelOutraTela = null;
private JButton jButtonTexto = null;
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(new GridBagLayout());
}
return jPanel;
}
/**
* This method initializes jJMenuBar
*
* @return javax.swing.JMenuBar
*/
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.add(getJMenu());
}
return jJMenuBar;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getJMenu() {
if (jMenu == null) {
jMenu = new JMenu();
jMenu.setText("Cadastro");
jMenu.add(getJMenuItem());
jMenu.add(getJPanel());
}
return jMenu;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem() {
if (jMenuItem == null) {
jMenuItem = new JMenuItem();
jMenuItem.setText("Altera JPanel");
jMenuItem.addActionListener(new ActionListener(){
//Evento que vai mudar a tela
public void actionPerformed(ActionEvent e) {
}
});
}
return jMenuItem;
}
/**
* This method initializes jPanel1
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelPrincipal() {
if (jPanelPrincipal == null) {
jPanelPrincipal = new JPanel();
jPanelPrincipal.setLayout(new GridBagLayout());
jPanelPrincipal.add(getJButton(), null);
}
return jPanelPrincipal;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("Nome");
}
return jButton;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Teste application = new Teste();
application.getJFrame().setVisible(true);
}
});
}
/**
* This method initializes jFrame
*
* @return javax.swing.JFrame
*/
private JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setSize(300, 200);
jFrame.setJMenuBar(getJJMenuBar());
jFrame.setContentPane(getJPanelPrincipal());
jFrame.setTitle("Application");
}
return jFrame;
}
public void actionPerformed(ActionEvent e) {
}
//O panel que deve aparecer
private JPanel getPanelOutraTela(){
if (jPanelOutraTela == null) {
jPanelOutraTela = new JPanel();
jPanelOutraTela.setLayout(new GridBagLayout());
jPanelOutraTela.add(getJButtonTexto(), null);
}
return jPanelOutraTela;
}
private JButton getJButtonTexto(){
if (jButtonTexto == null) {
jButtonTexto = new JButton();
jButtonTexto.setText("Texto");
}
return jButtonTexto;
}
}