Fiz uma classe Menu onde existe uma opção produtos, quero fazer uma classe TelaProdutos chamando de Menu e posicionando um JInternalFrame da tela de produtos, como fazer isso?Obrigado.
játenhoocódigo:JMenuItemitem2=newJMenuItem(“Produtos”);menu.add(item2);// Chama Tela/Classe Cadastro de Produtositem2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){//Chama class TelaProdutos com JInternalFrame“oquedevocolocaraqui?”}});//
publicstaticvoidmain(Stringargs[]){JFrameframe=newJFrame("Saw Client");finalJPopupMenupopupMenu=newJPopupMenu();// Create a submenu with itemsJMenusubmenu=newJMenu();// Add submenu to popup menupopupMenu.add(submenu);frame.getContentPane().add(popupMenu);JMenuBarmenuBar=newJMenuBar();JMenumenu=newJMenu("Cadastros");menuBar.add(menu);JMenuItemitem=newJMenuItem("Clientes");menu.add(item);JMenuItemitem2=newJMenuItem("Produtos");menu.add(item2);// Chama Tela/Classe Cadastro de Produtositem2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){//Chama class TelaProdutos com JInternalFrameJInternalFrameprodutos=newTelaProdutos();produtos.setBounds(100,100,320,240);produtos.setVisible(true);JDesktopPane.add(produtos);}});//menu.add(newJSeparator());JMenuItemitem99=newJMenuItem("Sair");menu.add(item99);//Sair do Sistemaitem99.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){System.exit(0);}});//JMenumenu2=newJMenu("Pedidos");menuBar.add(menu2);JMenuItemitem21=newJMenuItem("Orçamento");menu2.add(item21);JMenuItemitem22=newJMenuItem("Venda");menu2.add(item22);JMenumenu3=newJMenu("Relatórios");JMenuItemitem31=newJMenuItem("Pedidos");menu3.add(item31);JMenuItemitem32=newJMenuItem("Tabela de Preço");menu3.add(item32);menuBar.add(menu3);submenu=newJMenu("Vendas");JMenuItemsubitem31=newJMenuItem("Duplicatas");submenu.add(subitem31);menu3.add(submenu);frame.setJMenuBar(menuBar);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);intwidth=640;intheight=480;frame.setSize(width,height);frame.setResizable(false);frame.setVisible(true);}
}
Edinei_Manica
Primeira coisa, não crie tudo o teu código dentro do metodo main, senão está ficando tudo estático, e apos crie um JDesktopPane e adicione em seu frame e dai depois vc adiciona neste JDesktopPane o JInternalFrame !
Edinei_Manica
Tenta isto:
packagemypackage6;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JDesktopPane;importjavax.swing.JFrame;importjavax.swing.JInternalFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JPopupMenu;importjavax.swing.JSeparator;publicclassMenuextendsJFrame{publicstaticJDesktopPanedesktop=newJDesktopPane();publicMenu(){getContentPane().add(desktop);finalJPopupMenupopupMenu=newJPopupMenu();// Create a submenu with items JMenusubmenu=newJMenu();// Add submenu to popup menu popupMenu.add(submenu);getContentPane().add(popupMenu);JMenuBarmenuBar=newJMenuBar();JMenumenu=newJMenu("Cadastros");menuBar.add(menu);JMenuItemitem=newJMenuItem("Clientes");menu.add(item);JMenuItemitem2=newJMenuItem("Produtos");menu.add(item2);// Chama Tela/Classe Cadastro de Produtos item2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){//Chama class TelaProdutos com JInternalFrame JInternalFrameprodutos=newTelaProdutos();produtos.setBounds(100,100,320,240);produtos.setVisible(true);desktop.add(produtos);}});// menu.add(newJSeparator());JMenuItemitem99=newJMenuItem("Sair");menu.add(item99);//Sair do Sistema item99.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){System.exit(0);}});// JMenumenu2=newJMenu("Pedidos");menuBar.add(menu2);JMenuItemitem21=newJMenuItem("Orçamento");menu2.add(item21);JMenuItemitem22=newJMenuItem("Venda");menu2.add(item22);JMenumenu3=newJMenu("Relatórios");JMenuItemitem31=newJMenuItem("Pedidos");menu3.add(item31);JMenuItemitem32=newJMenuItem("Tabela de Preço");menu3.add(item32);menuBar.add(menu3);submenu=newJMenu("Vendas");JMenuItemsubitem31=newJMenuItem("Duplicatas");submenu.add(subitem31);menu3.add(submenu);this.setJMenuBar(menuBar);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);intwidth=640;intheight=480;this.setSize(width,height);this.setResizable(false);this.setVisible(true);}publicstaticvoidmain(Stringargs[]){Menumenu=newMenu();}}
R
Rogerio
Primeiro Obrigado pela dica e está quase certo, o meu código TelaProdutos é: , mas quando clico em Produtos não aparece nada, fiz um teste com System.out e chamou, o que está errado no código abaixo?
Value , pelo que entendi estavamos jogando o menu por cima do desktop, senão por favor explique, Obrigado.
Mas a minha tela com o label(TelaProdutos) ainda não aparece, porque?
como fechar o JInternalFrame?
ou onde tem um tutorial bem explicativo e com exemplos com isso que estou querendo fazer?
Edinei_Manica
“Rogerio”:
Value , pelo que entendi estavamos jogando o menu por cima do desktop, senão por favor explique, Obrigado.
Mas a minha tela com o label(TelaProdutos) ainda não aparece, porque?
como fechar o JInternalFrame?