J_Alison 0 Denunciar post Postado Abril 22, 2008 Boa noite pessoal, estou com dificuldades de implementar a classe a seguir, onde tento fazer com que através de um clique em um item do menu, mude o contentpane do frame. As classes FormCliente, FormProduto e FormFornecedor herdam de JPanel e estão no mesmo pacote. O código não apresenta nenhum erro de compilação ou em tempo de execução, mas escrevi-o com a intenção de que quando o usuário clicar em um item do menu, mude o painel de conteúdo, mas não está acontecendo nada. Se alguém puder me dar uma força agradeço muito, ois estou iniciando meus estudos em Java. CODE package br.fgf.modelo; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Principal implements ActionListener{ //Declaração dos atributos da classe private static Principal princ = new Principal(); private static JFrame frame = new JFrame("Cadastro"); private FormCliente formCli = new FormCliente(); private FormProduto formPro = new FormProduto(); private FormFornecedor formForn = new FormFornecedor(); private JMenuBar menuBar; private JMenu menu; private JMenuItem menuItem1; private JMenuItem menuItem2; private JMenuItem menuItem3; private JMenuItem menuItem4; //Configura e retorna uma barra de menus public JMenuBar createMenuBar() { menuBar = new JMenuBar(); menu = new JMenu("Menu de Opções"); menuBar.add(menu); menuItem1 = new JMenuItem("Cadastro de Clientes",KeyEvent.VK_T); menuItem1.addActionListener(this); menu.add(menuItem1); menuItem2 = new JMenuItem("Cadastro de Produtos",KeyEvent.VK_T); menuItem2.addActionListener(this); menu.add(menuItem2); menuItem3 = new JMenuItem("Cadastro de Fornecedores",KeyEvent.VK_T); menuItem3.addActionListener(this); menu.add(menuItem3); menu.addSeparator(); menuItem4 = new JMenuItem("Sair",KeyEvent.VK_T); menuItem4.addActionListener(this); menu.add(menuItem4); return menuBar; } //Configura e retorna o painel de conteúdo default public JPanel createContentPane() { JPanel contentPane = new JPanel(new BorderLayout()); JLabel label = new JLabel("<-----------------------------------------------------------------Escolha uma das Opções do Menu.------------------------------------------------------------------->"); contentPane.add(label); return contentPane; } //Configura e retorna o painel de cadastro de clientes public JPanel createContentPane(FormCliente c) { return c; } //Configura e retorna o painel de cadastro de produtos public JPanel createContentPane(FormProduto p) { return p; } //Configura e retorna o painel de cadastro de fornecedores public JPanel createContentPane(FormFornecedor f) { return f; } //Escolhe o painel a ser mostrado de acordo com a opção escolhida public void actionPerformed(ActionEvent e) { if(e.getSource() == menuItem1){ frame.setContentPane(princ.createContentPane(formCli)); }else if(e.getSource() == menuItem2){ frame.setContentPane(princ.createContentPane(formPro)); }else if(e.getSource() == menuItem3){ frame.setContentPane(princ.createContentPane(formForn)); }else if(e.getSource() == menuItem4){ frame.dispose(); System.exit(0); } } //Configura e mostra o frame private static void createAndShowGUI() { frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setJMenuBar(princ.createMenuBar()); frame.setContentPane(princ.createContentPane()); frame.setSize(750, 460); frame.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } } Compartilhar este post Link para o post Compartilhar em outros sites
J_Alison 0 Denunciar post Postado Abril 27, 2008 Caso interesse a alguém consegui resolver esse problema com a ajuda de um amigo em outro forum. Basta usar os seguintes métodos: frame.validate(); frame.repaint(); dentro do método: actionPerformed(ActionEvent e); Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Maio 13, 2008 Olá J_Alison, estou movendo seu tópico para o sub-fórum correto, para manter a organização do fórum. Plataforma Java http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Java desktop Flwww, grande abraço. Compartilhar este post Link para o post Compartilhar em outros sites