Alternar visibilidade de JPanel em um JInternalFrame
1 resposta
wilsontads
Conforme imagem abaixo, tenho o seguinte problema e não estou conseguindo implementar.
Tenho o seguinte…
um JInternalFrame,e dois JPanel em classes separadas, uma de listagem de cliente e outra de adicionar cliente.
por questão de estética, me foi solicitado que ao clicar em um botão ou outro, alterne o conteúdo da tela.
inicialmente pensei em alternar a visibilidade dos JPanel.
Alguém já fez algo do tipo, tem algum exemplo p/ compartilhar?
Use um CardLayout, ou melhor ainda, use um JTabbedPane. Exemplo de um CardLayout:
packageguj.cardlayout;importjava.awt.BorderLayout;importjava.awt.CardLayout;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.SwingUtilities;publicclassExemploCardLayoutextendsJFrame{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJPanelpnlBotoes=null;privateJButtonbtnProximo=null;privateJButtonbtnAnterior=null;privateJButtonbtnPrimeiro=null;privateJButtonbtnUltimo=null;privateJPanelpnlCardLayout=null;privateClientesPanelclientesPanel=null;privateVendasPanelvendasPanel=null;privateContasPanelcontasPanel=null;privateJButtonbtnVendas=null;/** * This method initializes pnlBotoes * * @return javax.swing.JPanel */privateJPanelgetPnlBotoes(){if(pnlBotoes==null){pnlBotoes=newJPanel();pnlBotoes.setLayout(newFlowLayout());pnlBotoes.add(getBtnProximo(),null);pnlBotoes.add(getBtnAnterior(),null);pnlBotoes.add(getBtnPrimeiro(),null);pnlBotoes.add(getBtnUltimo(),null);pnlBotoes.add(getBtnVendas(),null);}returnpnlBotoes;}/** * This method initializes btnProximo * * @return javax.swing.JButton */privateJButtongetBtnProximo(){if(btnProximo==null){btnProximo=newJButton();btnProximo.setText("Próximo");btnProximo.setActionCommand("Proximo");btnProximo.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){((CardLayout)pnlCardLayout.getLayout()).next(pnlCardLayout);}});}returnbtnProximo;}/** * This method initializes btnAnterior * * @return javax.swing.JButton */privateJButtongetBtnAnterior(){if(btnAnterior==null){btnAnterior=newJButton();btnAnterior.setText("Anterior");btnAnterior.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){((CardLayout)pnlCardLayout.getLayout()).previous(pnlCardLayout);}});}returnbtnAnterior;}/** * This method initializes btnPrimeiro * * @return javax.swing.JButton */privateJButtongetBtnPrimeiro(){if(btnPrimeiro==null){btnPrimeiro=newJButton();btnPrimeiro.setText("Primeiro");btnPrimeiro.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){((CardLayout)pnlCardLayout.getLayout()).first(pnlCardLayout);}});}returnbtnPrimeiro;}/** * This method initializes btnUltimo * * @return javax.swing.JButton */privateJButtongetBtnUltimo(){if(btnUltimo==null){btnUltimo=newJButton();btnUltimo.setText("Último");btnUltimo.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){((CardLayout)pnlCardLayout.getLayout()).last(pnlCardLayout);}});}returnbtnUltimo;}/** * This method initializes pnlCardLayout * * @return javax.swing.JPanel */privateJPanelgetPnlCardLayout(){if(pnlCardLayout==null){pnlCardLayout=newJPanel();pnlCardLayout.setLayout(newCardLayout());pnlCardLayout.add(getClientesPanel(),getClientesPanel().getName());pnlCardLayout.add(getVendasPanel(),getVendasPanel().getName());pnlCardLayout.add(getContasPanel(),getContasPanel().getName());}returnpnlCardLayout;}/** * This method initializes clientesPanel * * @return guj.cardlayout.ClientesPanel */privateClientesPanelgetClientesPanel(){if(clientesPanel==null){clientesPanel=newClientesPanel();clientesPanel.setName("clientesPanel");}returnclientesPanel;}/** * This method initializes vendasPanel * * @return guj.cardlayout.VendasPanel */privateVendasPanelgetVendasPanel(){if(vendasPanel==null){vendasPanel=newVendasPanel();vendasPanel.setName("vendasPanel");}returnvendasPanel;}/** * This method initializes contasPanel * * @return guj.cardlayout.ContasPanel */privateContasPanelgetContasPanel(){if(contasPanel==null){contasPanel=newContasPanel();contasPanel.setName("contasPanel");}returncontasPanel;}/** * This method initializes btnVendas * * @return javax.swing.JButton */privateJButtongetBtnVendas(){if(btnVendas==null){btnVendas=newJButton();btnVendas.setText("Vendas");btnVendas.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){((CardLayout)pnlCardLayout.getLayout()).show(pnlCardLayout,vendasPanel.getName());}});}returnbtnVendas;}/** * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stubSwingUtilities.invokeLater(newRunnable(){publicvoidrun(){ExemploCardLayoutthisClass=newExemploCardLayout();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}/** * This is the default constructor */publicExemploCardLayout(){super();initialize();}/** * This method initializes this * * @return void */privatevoidinitialize(){this.setSize(616,233);this.setContentPane(getJContentPane());this.setTitle("Exemplo de CardLayout");}/** * This method initializes jContentPane * * @return javax.swing.JPanel */privateJPanelgetJContentPane(){if(jContentPane==null){jContentPane=newJPanel();jContentPane.setLayout(newBorderLayout());jContentPane.add(getPnlBotoes(),BorderLayout.SOUTH);jContentPane.add(getPnlCardLayout(),BorderLayout.CENTER);}returnjContentPane;}}// @jve:decl-index=0:visual-constraint="10,10"
packageguj.cardlayout;importjava.awt.BorderLayout;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassClientesPanelextendsJPanel{privatestaticfinallongserialVersionUID=1L;privateJTextFieldtxtClientes=null;/** * This is the default constructor */publicClientesPanel(){super();initialize();}/** * This method initializes this * * @return void */privatevoidinitialize(){this.setSize(300,200);this.setLayout(newBorderLayout());this.add(getTxtClientes(),BorderLayout.CENTER);}/** * This method initializes txtClientes * * @return javax.swing.JTextField */privateJTextFieldgetTxtClientes(){if(txtClientes==null){txtClientes=newJTextField();txtClientes.setText("Clientes");}returntxtClientes;}}
packageguj.cardlayout;importjava.awt.BorderLayout;importjavax.swing.JLabel;importjavax.swing.JPanel;publicclassContasPanelextendsJPanel{privatestaticfinallongserialVersionUID=1L;privateJLabellblContas=null;/** * This is the default constructor */publicContasPanel(){super();initialize();}/** * This method initializes this * * @return void */privatevoidinitialize(){lblContas=newJLabel();lblContas.setText("Contas");this.setSize(300,200);this.setLayout(newBorderLayout());this.add(lblContas,BorderLayout.CENTER);}}
packageguj.cardlayout;importjava.awt.BorderLayout;importjavax.swing.JButton;importjavax.swing.JPanel;publicclassVendasPanelextendsJPanel{privatestaticfinallongserialVersionUID=1L;privateJButtonbtnVendas=null;/** * This is the default constructor */publicVendasPanel(){super();initialize();}/** * This method initializes this * * @return void */privatevoidinitialize(){this.setSize(300,200);this.setLayout(newBorderLayout());this.add(getBtnVendas(),BorderLayout.CENTER);}/** * This method initializes btnVendas * * @return javax.swing.JButton */privateJButtongetBtnVendas(){if(btnVendas==null){btnVendas=newJButton();btnVendas.setText("Vendas");}returnbtnVendas;}}