Jmenubar, como faço para criar funcões em meus botões?

7 respostas
thokk

Oi pessoal vcs sabem que estou começando a pouco tempo e é a primeira vez que estou fazendo isso uma aplicação com Jmenubar. Ok ja criei meu menu mas não sei colocar aplicações neste menu!!!

package Documents;

import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Event;
import java.awt.BorderLayout;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.KeyStroke;
import java.awt.Point;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JFrame;
import javax.swing.JDialog;

public class TempErros {

	private JFrame jFrame = null;

	private JPanel jContentPane = null;

	private JMenuBar jJMenuBar = null;

	private JMenu fileMenu = null;

	private JMenu editMenu = null;

	private JMenu helpMenu = null;

	private JMenuItem exitMenuItem = null;

	private JMenuItem aboutMenuItem = null;

	private JMenuItem cutMenuItem = null;

	private JMenuItem copyMenuItem = null;

	private JMenuItem pasteMenuItem = null;

	private JMenuItem saveMenuItem = null;

	
	private JFrame getJFrame() {
		if (jFrame == null) {
			jFrame = new JFrame();
			jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			jFrame.setJMenuBar(getJJMenuBar());
			jFrame.setSize(300, 200);
			jFrame.setContentPane(getJContentPane());
			jFrame.setTitle("Application");
		}
		return jFrame;
	}

	
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
		}
		return jContentPane;
	}

	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
			jJMenuBar.add(getFileMenu());
			jJMenuBar.add(getEditMenu());
			jJMenuBar.add(getHelpMenu());
		}
		return jJMenuBar;
	}

	
	private JMenu getFileMenu() {
		if (fileMenu == null) {
			fileMenu = new JMenu();
			fileMenu.setText("Arquivos");
			fileMenu.add(getSaveMenuItem());
			fileMenu.add(getExitMenuItem());
		}
		return fileMenu;
	}

	
	private JMenu getEditMenu() {
		if (editMenu == null) {
			editMenu = new JMenu();
			editMenu.setText("Editar");
			editMenu.add(getCutMenuItem());
			editMenu.add(getCopyMenuItem());
			editMenu.add(getPasteMenuItem());
		}
		return editMenu;
	}

	
	private JMenu getHelpMenu() {
		if (helpMenu == null) {
			helpMenu = new JMenu();
			helpMenu.setText("Help");
			helpMenu.add(getAboutMenuItem());
		}
		return helpMenu;
	}

	
	private JMenuItem getExitMenuItem() {
		if (exitMenuItem == null) {
			exitMenuItem = new JMenuItem();
			exitMenuItem.setText("Exit");
			exitMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					System.exit(0);
				}
			});
		}
		return exitMenuItem;
	}

	
	private JMenuItem getAboutMenuItem() {
		if (aboutMenuItem == null) {
			aboutMenuItem = new JMenuItem();
			aboutMenuItem.setText("About");
			aboutMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JDialog aboutDialog = getAboutDialog();
					aboutDialog.pack();
					Point loc = getJFrame().getLocation();
					loc.translate(20, 20);
					aboutDialog.setLocation(loc);
					aboutDialog.setVisible(true);
				}
			});
		}
		return aboutMenuItem;
	}

	
	private JMenuItem getCutMenuItem() {
		if (cutMenuItem == null) {
			cutMenuItem = new JMenuItem();
			cutMenuItem.setText("Cut");
			cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
					Event.CTRL_MASK, true));
		}
		return cutMenuItem;
	}

	
	private JMenuItem getCopyMenuItem() {
		if (copyMenuItem == null) {
			copyMenuItem = new JMenuItem();
			copyMenuItem.setText("Copy");
			copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
					Event.CTRL_MASK, true));
		}
		return copyMenuItem;
	}

	
	private JMenuItem getPasteMenuItem() {
		if (pasteMenuItem == null) {
			pasteMenuItem = new JMenuItem();
			pasteMenuItem.setText("Paste");
			pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
					Event.CTRL_MASK, true));
		}
		return pasteMenuItem;
	}

	
	private JMenuItem getSaveMenuItem() {
		if (saveMenuItem == null) {
			saveMenuItem = new JMenuItem();
			saveMenuItem.setText("Save");
			saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
					Event.CTRL_MASK, true));
		}
		return saveMenuItem;
	}

	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				TempErros application = new TempErros();
				application.getJFrame().setVisible(true);
			}
		});
	}

}

este é meu codigo, mas gostaria de saber como insiro coisas no meu menu!!!

Grato
Paulo

7 Respostas

_Renatu

parece que você tá querendo colocar as ações dos menus, é isso?

você pode fazer igualzinho como faz com botões, usando ActionListener

aqui você vê um tutorial da sun para usar menus:

http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html

qualquer dúvida, posta aqui de novo!

boa sorte!

thokk

Eu adiciono o ActionListener nos meus botões igual a este aqui…

public void actionPerformed(ActionEvent evt) {
		if (evt.getSource() == Enviar) {
			Enviado.setText(Enviado.getText()+Receptor.getText());
			Receptor.setText("");
			// System.out.println(Enviado.);
		}
		if (evt.getSource() == Deletar) {
			Receptor.setText("");
			System.out.println(Receptor.getText());
		}

	}
lina

Oi,
olha só um exemplo de aplicação com menuzinho:

/**
    * Cria o grupo de menus. (SubMenus).
  */
menuItem[0] 	= 	new JMenuItem(io_ie_novo);	        
menuItem[0].setMnemonic('N');
menuItem[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
	        
//
// Adiciona o primeiro item do menu a barra de status.
//
menu.add(menuItem[0]);

criei um evento para ele:

/**
 * Ação quando clicado em novo.
*/
Action
io_ie_novo	=	new	AbstractAction()
{
	public void actionPerformed(ActionEvent e)
	{
 
                //
                // Defina o seu código...
                //

                                 
		public Object getValue(String key)
		{
			if	(
					key.equals("Name")
				)
			{
				return "Novo";
			}
			else
			{
				return super.getValue(key);
			}
		};
	};

Eu fiz assim...
mais afinal você conseguiu fazer?

thokk

Valeu mesmo… Acho vou ver o code que vc fez Lina, e ver comparar os dois…

Grato
Paulo

lina

Tudo bem,
tipo...
quando você cria a ação do seu menuzinho...
a parte do trecho:

public Object getValue(String key)
 		{
 			if	(
 					key.equals("Name")
 				)
 			{
 				return "Novo";
 			}
 			else
 			{
 				return super.getValue(key);
 			}
 		};

não é necessario... eu criei essa parte, porque meu Item do menu, sempre ficava sem nome.. mais eu posso passar o nome já direto no evento hahahahaha ki burra... substituindo isso tudo por isso, fica igual e tbm resolve ó:

/**
  * Ação quando clicado em novo.
 */
 Action
 io_ie_novo	=	new	AbstractAction("<NOMEDOJMenuITEM>")
 {
 	public void actionPerformed(ActionEvent e)
 	{

                }
};

Bem mais simples! era só ler neh...

Tchauzin!
vlw

thokk

blz…

PorkaSolta_CHAPOLIM

Kara eu acho que sei o que vc quer. É pque no eclipse não tem como clikar com btn direito e escolher actionevent certo? se for o caso tem uma barra do lado esquerdo chamada JAVA Beans, nela vc encontra os componentes, inclusive os jMenusItem. Então vc clika c btn direito e escolhe a action normalmente!

Flw Amigo!!!

Criado 9 de janeiro de 2007
Ultima resposta 5 de mar. de 2007
Respostas 7
Participantes 4