Pessoal
Desculpe o engano. Acabei não colando a tela princpal.
Aqui vai a mesma.
package menu;
import java.awt.event.
import java.awt.event.
import javax.swing.
import javax.swing.
import javax.swing.
import javax.swing.
import javax.swing.
import javax.swing.
public class Aplicativo extends JFrame
{
private JMenuBar mMenu = new JMenuBar();
private JMenu mMenu1 = new JMenu("Menu 1");
private JMenu mMenu2 = new JMenu("Menu 2");
private JMenuItem mSubMenu1 = new JMenuItem("Tela 1");
private JMenuItem mSubMenu2 = new JMenuItem("Tela 2");
private Tela1 mTela1 = new Tela1();
private Tela2 mTela2 = new Tela2();
private OuvinteMenu mOuvinteMenu = new OuvinteMenu(
public static void main(String[
{
SwingUtilities.
{
public void run()
{
Aplicativo tAplicativo = new Aplicativo()
tAplicativo.
}
});
}
protected void processar()
{
this.getContentPane
JLabel.CENTER)
this.setJMenuBar(
mMenu.add(mMenu1)
mMenu.add(mMenu2)
mMenu1.add (mSubMenu1);
mMenu2.add (mSubMenu2);
// Observar que aqui eu vinculo o menu à sua tela usando
mSubMenu1.putClient
mSubMenu2.putClient
// Aqui eu coloco o ouvinte genérico para os menus
mSubMenu1.addAction
mSubMenu2.addAction
this.setDefaultClos
this.setSize(
this.setLocation(
this.setVisible(
}
private class OuvinteMenu implements ActionListener
{
public void actionPerformed(
{
JMenuItem tMenu = (JMenuItem) pEvent.getSource(
JFrame tTela = (JFrame) tMenu.getClientProp
tTela.setVisible(
}
}
}
--
José Augusto Martins Nieviadonski
Sun Certified Associate for Java Platform, Standard Edition
Especialista Técnico II - FX and Trade Systems - HSBC Bank Brasil S.A.
Professor - Pós-graduação Java - Faculdades SPEI
jose.augusto.
jaugusto@spei.
Citando José Augusto Martins Nieviadonski <jaugusto@spei.
> Pessoal.
>
> Vou sugerir outra implementação. Explico.
>
> Primeiramente eu coloco as caracteristicas das telas no seu proprio
> construtor, deixando somente a mesma "invisivel". Outro detalhes é que
> é usado o HIDE_ON_CLOSE nas telas para que os recursos das mesmas não
> sejam eliminados, pois o objeto relativo às telas fica sempre
> instanciado.
>
> As classes das telas são as seguintes:
> ------------
> package menu;
>
> import javax.swing.
> import javax.swing.
>
> public class Tela1 extends JFrame
> {
> public Tela1()
> {
> this.getContentPane
>
> // Observar que eu somente escondo a tela, mantendo
> // o objeto alocado para uso posterior
> this.setDefaultClos
> this.setResizable(
> this.setLocationRel
> this.setSize(
> this.setLocation(
> }
>
> }
> ------------
> package menu;
>
> import javax.swing.
> import javax.swing.
>
> public class Tela2 extends JFrame
> {
> public Tela2()
> {
> this.getContentPane
>
> // Observar que eu somente escondo a tela, mantendo
> // o objeto alocado para uso posterior
> this.setDefaultClos
> this.setResizable(
> this.setLocationRel
> this.setSize(
> this.setLocation(
> }
>
> }
> ------------
>
> Agora a tela principal. Observar os seguintes detalhes.
>
> 1) Eu ja deixo criada as telas 1 e 2, somente que elas não estão visíveis.
>
> 2) Eu coloco os objetos relativos às telas como propriedade do menu.
> Todo componente swing pode armazenar objetos dentro dele atraves do
> método putClienProperty, onde é fornecido uma chave em forma de String
> e o objeto a ser armazenado.
>
> 3) É feita a instalação de um único ouvinte de menu, genérico.
>
> 4) No ouvinte de menu, basta recuperar a proriedade aramazenada no
> item de menu acionado e chama o método setVisible para que a tela seja
> mostrada.
>
>
> Essa é uma possibilidade de implementação, pode haver outras, mas acho
> que atende a sua necessidade relatada no seu email.
>
> Abraço a todos da lista.
>
>
> --
> José Augusto Martins Nieviadonski
> Sun Certified Associate for Java Platform, Standard Edition
> Especialista Técnico II - FX and Trade Systems - HSBC Bank Brasil S.A.
> Professor - Pós-graduação Java - Faculdades SPEI
> jose.augusto.
> jaugusto@spei.
>
>
>
> Citando André <deco0_07@yahoo.
>
>> Obrigado Alison e Gustavo..
>>
>> Fiz da seguinte forma..ja me ajuda bastante pra não ficar digitando sempre
>> os mesmos codigos..rsrs
>>
>>
>>
>> public void AbreJanela(Object NomeJanela)
>>
>> {
>>
>> javax.swing.
>>
>> Formulario.setResiz
>>
>> Formulario.setLocat
>>
>> Formulario.setDefau
>>
>> Formulario.setVisib
>>
>> }
>>
>>
>>
>> Aí só instancio e chamo a função
>>
>>
>>
>> Usuario Cad_Usuario = new Usuario();
>>
>> AbreJanela(Cad_
>>
>>
>>
>> Ciente Cad_Cliente = new Cliente();
>>
>> AbreJanela(Cad_
>>
>>
>>
>>
>>
>> []'s
>>
>> De: java-br@yahoogrupos
>> de Alisson
>> Enviada em: quarta-feira, 7 de outubro de 2009 Bomdia Andre 09:16
>> Para: java-br@yahoogrupos
>> Assunto: Re: [java-br] Abrir Janelas
>>
>>
>>
>>
>>
>> desculpe so retomando o que respondi.. a declaração do metodo esta certo..
>> porem o codigo interno ficaria mais ou menos assim
>>
>> Public void AbreJanela(JFrame NomeJanela){
>>
>> NomeJanlea.setvisib
>>
>> voce nao precisa instanciar novamente pois ja esta passando uma instancia de
>> um objeto jframe.. entao, basta chamar o metodo!
>>
>>
>>
>>
>>
>>
>>
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>
>
>
>
>
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
Alterar configurações via web (Requer Yahoo! ID)
Alterar configurações via e-mail: Alterar recebimento para lista diária de mensagens | Alterar formato para o tradicional
Visite seu Grupo | Termos de uso do Yahoo! Grupos | Sair do grupo







0 comentários:
Postar um comentário