Java - Menus
De Aulas
Afluentes: Programação em Java
Menus
Menus de Barra
// Cria a barra de menu superior para nosso programa
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// Adiciona um item no menu
JMenu menu = new JMenu("Arquivo");
menuBar.add(menu);
menu.setMnemonic(KeyEvent.VK_A);
// Adiciona alguns itens
JMenuItem menuItem01 = new JMenuItem("Novo - único com ação", KeyEvent.VK_N);
menu.add(menuItem01);
Itens de Menu
Os ítens de menu podem ser inicializados de várias formas:
// Adiciona um itens com tecla de atalho
JMenuItem menuItem01 = new JMenuItem("Novo - único com ação", KeyEvent.VK_N);
menu.add(menuItem01);
// Adiciona ação para o item do menu
menuItem01.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
count++;
setTitle("Menus: Exemplo " + count);
}
});
// Adiciona um item com iagem e texto
ImageIcon iconOpen = new ImageIcon("open.png");
JMenuItem menuItem02 = new JMenuItem("Novo com icone", iconOpen);
menu.add(menuItem02);
// Adiciona um item só com imagem
JMenuItem menuItem3 = new JMenuItem(iconOpen);
menu.add(menuItem3);
// Adiciona um separador
menu.addSeparator();
Itens de Menu - RadioButtons
// Adiciona um grupo de botões para os RadioButtons
ButtonGroup group = new ButtonGroup();
// Adiciona um RadioButton
JMenuItem rbMenuItem = new JRadioButtonMenuItem("Um item de menu com RadioButton");
rbMenuItem.setSelected(true);
menu.add(rbMenuItem);
group.add(rbMenuItem);
// Adiciona outro RadioButton
rbMenuItem = new JRadioButtonMenuItem("Outro com Radiobutton");
menu.add(rbMenuItem);
group.add(rbMenuItem);
Itens de Menu - CheckBox
// Adiciona um item de menu CheckBox
JMenuItem cbMenuItem = new JCheckBoxMenuItem("Um item de menu com CheckBox");
cbMenuItem.setMnemonic(KeyEvent.VK_C);
menu.add(cbMenuItem);
// Adiciona outro item de menu CheckBox
cbMenuItem = new JCheckBoxMenuItem("Outro com CheckBox");
cbMenuItem.setMnemonic(KeyEvent.VK_H);
menu.add(cbMenuItem);
// Adiciona um item que abre um submenu
JMenu submenu = new JMenu("Um submenu");
menu.add(submenu);
// Adiciona um item ao submenu
JMenuItem menuItem = new JMenuItem("Um item do submneu");
submenu.add(menuItem);
// Adiciona outro item ao submenu
menuItem = new JMenuItem("Outro item do submenu");
submenu.add(menuItem);
Código Exemplo
1import javax.swing.*;
2import java.awt.*;
3import java.awt.event.*;
4
5public class Menu01 extends JFrame {
6 private static final long serialVersionUID = 1L;
7 private int count = 0;
8
9 public Menu01() {
10 super("Menus: Exemplo");
11 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
12 setLayout(new BorderLayout());
13 setPreferredSize(new Dimension(400, 300));
14
15 // Cria a barra de menu superior para nosso programa
16 JMenuBar menuBar = new JMenuBar();
17 setJMenuBar(menuBar);
18
19 // Adiciona um item no menu
20 JMenu menu = new JMenu("Arquivo");
21 menuBar.add(menu);
22 menu.setMnemonic(KeyEvent.VK_A);
23
24 // Adiciona um itens com tecla de atalho
25 JMenuItem menuItem01 = new JMenuItem("Novo - único com ação", KeyEvent.VK_N);
26 menu.add(menuItem01);
27
28 // Adiciona ação para o item do menu
29 menuItem01.addActionListener(new ActionListener() {
30 @Override
31 public void actionPerformed(ActionEvent arg0) {
32 count++;
33 setTitle("Menus: Exemplo " + count);
34 }
35 });
36
37 // Adiciona um item com iagem e texto
38 ImageIcon iconOpen = new ImageIcon("open.png");
39 JMenuItem menuItem02 = new JMenuItem("Novo com icone", iconOpen);
40 menu.add(menuItem02);
41
42 // Adiciona um item só com imagem
43 JMenuItem menuItem3 = new JMenuItem(iconOpen);
44 menu.add(menuItem3);
45
46 // Adiciona um separador
47 menu.addSeparator();
48
49 // Adiciona um grupo de botões para os RadioButtons
50 ButtonGroup group = new ButtonGroup();
51
52 // Adiciona um RadioButton
53 JMenuItem rbMenuItem = new JRadioButtonMenuItem("Um item de menu com RadioButton");
54 rbMenuItem.setSelected(true);
55 menu.add(rbMenuItem);
56 group.add(rbMenuItem);
57
58 // Adiciona outro RadioButton
59 rbMenuItem = new JRadioButtonMenuItem("Outro com Radiobutton");
60 menu.add(rbMenuItem);
61 group.add(rbMenuItem);
62
63 menu.addSeparator();
64
65 // Adiciona um item de menu CheckBox
66 JMenuItem cbMenuItem = new JCheckBoxMenuItem("Um item de menu com CheckBox");
67 cbMenuItem.setMnemonic(KeyEvent.VK_C);
68 menu.add(cbMenuItem);
69
70 // Adiciona outro item de menu CheckBox
71 cbMenuItem = new JCheckBoxMenuItem("Outro com CheckBox");
72 cbMenuItem.setMnemonic(KeyEvent.VK_H);
73 menu.add(cbMenuItem);
74
75 menu.addSeparator();
76
77 // Adiciona um item que abre um submenu
78 JMenu submenu = new JMenu("Um submenu");
79 menu.add(submenu);
80
81 // Adiciona um item ao submenu
82 JMenuItem menuItem = new JMenuItem("Um item do submneu");
83 submenu.add(menuItem);
84
85 // Adiciona outro item ao submenu
86 menuItem = new JMenuItem("Outro item do submenu");
87 submenu.add(menuItem);
88
89 pack();
90 setVisible(true);
91 }
92
93 public static void main(String[] args) {
94 new Menu01();
95 }
96}
Atividade 2
Faça um programa em java usando swing com um menu. A janela contém um campo texto grande, como um editor de texto. Cada item do menu faz alguma ação no texto como adicionar um texto, apagar tudo, colocar ou tirar a quebra de linha automática do texto, a quebra de palavras, etc.
Resolução
1import javax.swing.*;
2import java.awt.*;
3import java.awt.event.*;
4
5public class Editor extends JFrame {
6 private static final long serialVersionUID = 1L;
7 private boolean editable = true;
8 private boolean warp = false;
9 private boolean wordWarp = false;
10
11 public Editor() {
12 super("Editor");
13 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
14 setLayout(new BorderLayout());
15 setPreferredSize(new Dimension(600, 500));
16
17 JTextArea area = new JTextArea();
18 area.setText("Testando 1, 2, 3");
19 JScrollPane scroll = new JScrollPane(area);
20 getContentPane().add(scroll, BorderLayout.CENTER);
21
22 JMenuBar menuBar = new JMenuBar();
23 setJMenuBar(menuBar);
24
25 JMenu menuArquivo = new JMenu("Arquivo");
26 menuBar.add(menuArquivo);
27 menuArquivo.setMnemonic(KeyEvent.VK_A);
28
29 JMenu menuEditar = new JMenu("Editar");
30 menuBar.add(menuEditar);
31 menuEditar.setMnemonic(KeyEvent.VK_E);
32
33 JMenuItem menuItemApagarTudo = new JMenuItem(
34 "Apagar tudo", KeyEvent.VK_T);
35 menuEditar.add(menuItemApagarTudo);
36
37 menuItemApagarTudo.addActionListener(new ActionListener() {
38 @Override
39 public void actionPerformed(ActionEvent arg0) {
40 area.setText("");
41 }
42 });
43
44 JMenuItem menuItemDuplicar = new JMenuItem(
45 "Duplicar", KeyEvent.VK_D);
46 menuEditar.add(menuItemDuplicar);
47
48 menuItemDuplicar.addActionListener(new ActionListener() {
49 @Override
50 public void actionPerformed(ActionEvent arg0) {
51 area.setText(area.getText() + "\n" + area.getText());
52 }
53 });
54
55 JMenu menuConfig = new JMenu("Configuração");
56 menuBar.add(menuConfig);
57 menuConfig.setMnemonic(KeyEvent.VK_C);
58
59 JMenuItem menuItemEditavel = new JMenuItem(
60 "Editavel", KeyEvent.VK_E);
61 menuConfig.add(menuItemEditavel);
62
63 menuItemEditavel.addActionListener(new ActionListener() {
64 @Override
65 public void actionPerformed(ActionEvent arg0) {
66 editable = !editable;
67 area.setEditable(editable);
68 }
69 });
70
71 JMenuItem menuItemWarp = new JMenuItem(
72 "Quebrar Linhas", KeyEvent.VK_Q);
73 menuConfig.add(menuItemWarp);
74
75 menuItemWarp.addActionListener(new ActionListener() {
76 @Override
77 public void actionPerformed(ActionEvent arg0) {
78 warp = !warp;
79 area.setLineWrap(warp);
80 }
81 });
82
83 JMenuItem menuItemWordWarp = new JMenuItem(
84 "Quebrar Palavras", KeyEvent.VK_P);
85 menuConfig.add(menuItemWordWarp);
86
87 menuItemWordWarp.addActionListener(new ActionListener() {
88 @Override
89 public void actionPerformed(ActionEvent arg0) {
90 wordWarp = !wordWarp;
91 area.setWrapStyleWord(wordWarp);
92 }
93 });
94
95 pack();
96 setVisible(true);
97 }
98
99 public static void main(String[] args) {
100 new Editor();
101 }
102}