Chamar Opção de Menu

5 respostas
Z

Olá amigos,
Estou tentando fazer um sisteminha estou com alguns probleminhas…
tem como alguem me da uma ideia de como fazer 2 botao neste codigo…
eu tentei em outro sistema com a tela 800X600 mas ficou os 2 botao usando a tela toda…
E é possivel fazer em java aquele menu tipo do windows…
Arquivo Editar Exibir que vai bem em cima

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.Container; 
import java.awt.GridLayout; 
import java.awt.event.*;
 
 
public class TelaInicial extends JFrame
{
      private Container container;
     JPanel panel;
     JLabel m1;
     JButton botao;
     
    
     
     
     public TelaInicial()
     {
         super("Tela Inicial LV System");
     }
     
     public void criaJanela()
     { 
     	 setSize(800,600);
     	 setVisible(true);
     	 setResizable(false); 
     	 setLocationRelativeTo(null);       
         
         panel = new JPanel();
         
         JLabel m1 = new JLabel("Sistema em Desenvolvimento");
         panel.add(m1);
         
         container = getContentPane(); 
     	 container.setLayout(new GridLayout(3, 3)); 

         JButton botao= new JButton("Botão");   
        
         
         getContentPane().add(panel, BorderLayout.CENTER);
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         
         //pack();
         setVisible(true);
     }
     public static void main(String args[])
     {
         TelaInicial s = new TelaInicial();
         s.criaJanela();
     }
     
   
 }

5 Respostas

Y

O Menu estilo Windows você faz usando as classes JMenuBar, JMenu e JMenuItem.

JMenuBar representa o menu em geral. JMenu são os títulos principais que contêm opções. E JMenuItem’s são as opções.

Exemplo de como você pode fazer:

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

...

itemAbout = new JMenuItem("Sobre");
itemAbout.addActionListener(new Handler());

itemExit = new JMenuItem("Sair");
itemExit.addActionListener(new Handler());

itemAbout.setMnemonic('S');
itemExit.setMnemonic('r');

submenuMain = new JMenu("Menu");
submenuMain.setMnemonic('M');
submenuMain.add(itemAbout);
submenuMain.add(itemExit);

menu = new JMenuBar();
menu.add(submenuMain);

super.setJMenuBar(menu);

OBS.: Handler será algum objeto/anonymous class que tu vais usar para executar as ações referentes ao item do menu.

F

E´isso mesmo

primeiro vc cria um JMenuBar()
segundo vc cria um JMenu()
terceiro vc cria um JMenuItem() e adiciona ele no JMenuBar()
quarto vc adiciona o JMenuBar() no JMenu()

e pronto

Z
Amigos, tem como eu deixar o menu aparecendo todo que tipo o menu Arquivo tem 2 itens Login | Sair mas so aparece o primeiro o que devo fazer
import javax.swing.JFrame;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 import javax.swing.WindowConstants;
 
 class principal extends JFrame{
 	
 	private JMenuBar BarraMenu = null;
 	private JMenu mnuArquivo = null;
 	private JMenu mnuUsuario = null;
 	private JMenu mnuAjuda = null;
 	private JMenuItem mnuSair = null; //SUB Arquivo
 	private JMenuItem mnuLogin = null;//SUB Arquivo
 	private JMenuItem mnuSobre = null;//SUB Ajuda 
 
 	public principal() {
 		super();
 		// TODO Auto-generated constructor stub
 		initialize();
 	}
 	
 	private void initialize(){
 		this.setTitle("Aplicação com menu");
 		this.setJMenuBar(getBarraMenu());
 		this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 		this.setSize(600,200);
 		this.setVisible(true);
 	}
 
 	private JMenuBar getBarraMenu() {
 		if (BarraMenu == null){
 			BarraMenu = new JMenuBar();
 			BarraMenu.add(getMnuArquivo());
 			BarraMenu.add(getMnuUsuario());
 			BarraMenu.add(getMnuAjuda());
 		}
 		return BarraMenu;
 	}
 
 	private JMenu getMnuArquivo() {
 		if (mnuArquivo == null){
 			mnuArquivo = new JMenu();
 			mnuArquivo.setText("Arquivo");
 			mnuArquivo.add(getMnuSair());
 			mnuArquivo.add(getMnuLogin());
 		}
 		return mnuArquivo;
 	}
 
 	private JMenu getMnuUsuario(){
 		if(mnuUsuario == null){
 			mnuUsuario = new JMenu();
 			mnuUsuario.setText("Usuarios");
 		}
 		return mnuUsuario;
 	}
 	
 		private JMenu getMnuAjuda(){
 		if(mnuAjuda == null){
 			mnuAjuda = new JMenu();
 			mnuAjuda.setText("Ajuda");
 			mnuAjuda.add(getMnuSobre());
 		}
 		return mnuAjuda;
 	}
 	
 	private JMenuItem getMnuSair() {
 		if (mnuSair == null){
 			mnuSair = new JMenuItem();
 			mnuSair.setText("Sair");
 		}
 		return mnuSair;
 	}
 	
 	private JMenuItem getMnuLogin(){
 		if(mnuLogin == null){
 			mnuLogin = new JMenuItem();
 			mnuSair.setText("Login");
 		}
 		return mnuLogin;
 	}
 	
 	private JMenuItem getMnuSobre() {
 		if(mnuSobre == null){
 			mnuSobre = new JMenuItem();
 			mnuSobre.setText("Sobre");
 		}
 		return mnuSobre;
 	}
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		// TODO Auto-generated method stub
                 new principal();
 	}
 
 }
Y

Cara, compilei aqui e apareceu sim o Sair e o Login.

Dicas rápidas: nomes de classes devem sempre começar com letras maiúsculas. Nomes de métodos e variáveis devem sempre começar com letras minúsculas. Fica mais lógico se, no menu Arquivo, o item Sair vier Depois de Login.

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
  
class Principal extends JFrame
  {
   private JMenuBar barraMenu = null;
   private JMenu mnuArquivo = null;
   private JMenu mnuUsuario = null;
   private JMenu mnuAjuda = null;
   private JMenuItem mnuSair = null;  //SUB Arquivo
   private JMenuItem mnuLogin = null; //SUB Arquivo
   private JMenuItem mnuSobre = null; //SUB Ajuda

   public Principal()
     {
      super();
      initialize();
     }

   private void initialize()
     {
      this.setTitle("Aplicação com Menu - Teste");
      this.setJMenuBar(getBarraMenu());
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setSize(600,200);
      this.setVisible(true);
     }

   private JMenuBar getBarraMenu()
     {
      if (barraMenu == null)
        {
         barraMenu = new JMenuBar();
         barraMenu.add(getMnuArquivo());
         barraMenu.add(getMnuUsuario());
         barraMenu.add(getMnuAjuda());
        }

      return barraMenu;
     }
  
   private JMenu getMnuArquivo()
     {
      if (mnuArquivo == null)
        {
         mnuArquivo = new JMenu("Arquivo");
         mnuArquivo.add(getMnuLogin());
         mnuArquivo.add(getMnuSair());
        }

      return mnuArquivo;
     }
  
   private JMenu getMnuUsuario()
     {
      if(mnuUsuario == null)
        { mnuUsuario = new JMenu("Usuários"); }

      return mnuUsuario;
     }
  	
   private JMenu getMnuAjuda()
     {
      if(mnuAjuda == null)
        {
         mnuAjuda = new JMenu("Ajuda");
         mnuAjuda.add(getMnuSobre());
        }

      return mnuAjuda;
     }
  	
   private JMenuItem getMnuSair()
     {
      if (mnuSair == null)
        { mnuSair = new JMenuItem("Sair"); }

      return mnuSair;
     }
  	
   private JMenuItem getMnuLogin()
     {
      if(mnuLogin == null)
        { mnuLogin = new JMenuItem("Login"); }

      return mnuLogin;
     }
  	
   private JMenuItem getMnuSobre()
     {
      if(mnuSobre == null)
        { mnuSobre = new JMenuItem("Sobre"); }

      return mnuSobre;
     }
  
   /**
   * @param args
   */
   public static void main(String[] args)
     { new Principal(); }
  }
Z

Amigos,
para colocar uma funcionabilidade no menu eu estou tentando usar como para os botoes…está correto?
so que pada mim está dando um erro que desconheço…acho q e algum detalhezinho…

mnuSair.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           System.exit(1);
        }
     });

o codigo principal ficando assim:
Yky Mattshawn,
Obrigado pelas dicas aos pouquinhos vou aprendendo… :wink:

import javax.swing.JFrame;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
   
 class Principal extends JFrame
   {
    private JMenuBar barraMenu = null;
    private JMenu mnuArquivo = null;
    private JMenu mnuUsuario = null;
    private JMenu mnuAjuda = null;
    private JMenuItem mnuSair = null;  //SUB Arquivo
    private JMenuItem mnuLogin = null; //SUB Arquivo
    private JMenuItem mnuSobre = null; //SUB Ajuda
 
    public Principal()
      {
       super();
       initialize();
      }
 
    private void initialize()
      {
       this.setTitle("Aplicação com Menu - Teste");
       this.setJMenuBar(getBarraMenu());
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setSize(600,200);
       this.setVisible(true);
      }
 
    private JMenuBar getBarraMenu()
      {
       if (barraMenu == null)
         {
          barraMenu = new JMenuBar();
          barraMenu.add(getMnuArquivo());
          barraMenu.add(getMnuUsuario());
          barraMenu.add(getMnuAjuda());
         }
 
       return barraMenu;
      }
   
    private JMenu getMnuArquivo()
      {
       if (mnuArquivo == null)
         {
          mnuArquivo = new JMenu("Arquivo");
          mnuArquivo.add(getMnuLogin());
          mnuArquivo.add(getMnuSair());
         }
 
       return mnuArquivo;
      }
   
    private JMenu getMnuUsuario()
      {
       if(mnuUsuario == null)
         { mnuUsuario = new JMenu("Usuários"); }
 
       return mnuUsuario;
      }
   	
    private JMenu getMnuAjuda()
      {
       if(mnuAjuda == null)
         {
          mnuAjuda = new JMenu("Ajuda");
          mnuAjuda.add(getMnuSobre());
         }
 
       return mnuAjuda;
      }
   	
    private JMenuItem getMnuSair()
      {
       if (mnuSair == null)
         { mnuSair = new JMenuItem("Sair"); }
 
       return mnuSair;
      }
   	
    private JMenuItem getMnuLogin()
      {
       if(mnuLogin == null)
         { mnuLogin = new JMenuItem("Login"); }
 
       return mnuLogin;
      }
   	
    private JMenuItem getMnuSobre()
      {
       if(mnuSobre == null)
         { mnuSobre = new JMenuItem("Sobre"); }
 
       return mnuSobre;
      }
      //Função para o Menu Sair....Encerrar Programa
      mnuSair.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           System.exit(1);
        }
     });
   
    /**
    * @param args
    */
    public static void main(String[] args)
      { new Principal(); }
   }
Criado 14 de abril de 2007
Ultima resposta 15 de abr. de 2007
Respostas 5
Participantes 3