Академический Документы
Профессиональный Документы
Культура Документы
public J13E1()
Figura 1.1: Interface gráfica que permite definir a cor de fundo através de {
JMenus. setTitle("JMenu I");
setSize(WIDTH,HEIGHT);
setLocation(250,250);
setDefaultCloseOperation(EXIT_ON_CLOSE);
createContents(); // Metodo que adiciona componentes.
setVisible(true);
}
1 2
// Criando o JMenu de cores. // Adicionando itens ao sub JMenu.
public void createJMenu1() fjm3.add(fcor4);
{ fjm3.add(fcor5);
// Criando objeto JMenuBar. fjm3.add(fcor6);
barra = new JMenuBar();
//----------------------------------------//
// Criando objeto JMenu principal.
fjm1 = new JMenu("Cores de Fundo"); // Adicionando os sub JMenus ao JMenu de Cores.
fjm1.add(fjm2);
//----------------------------------------// fjm1.add(fjm3);
// Criando objetos dos sub JMenu. //
//----------------------------------------// // Adicionando o JMenu de cores na barra.
fjm2 = new JMenu("Quentes"); barra.add(fjm1);
// Criando elementos do sub JMenu de cores quentes. // Modificando a barra de menus para a Janela.
fcor1 = new JMenuItem("Vermelho"); setJMenuBar(barra);
fcor2 = new JMenuItem("Laranja");
fcor3 = new JMenuItem("Amarelo"); }
// Adicionando tratamento de evento aos itens de menu. public void actionPerformed(ActionEvent event)
fcor1.addActionListener(this); {
fcor2.addActionListener(this); // Verificando as fontes de evento, que sao
fcor3.addActionListener(this); // os itens de menu de cor de fundo, e para
// cada uma definir a cor de fundo adequada.
// Adicionando itens ao sub JMenu. if (event.getSource() == fcor1)
fjm2.add(fcor1); p1.setBackground(Color.RED);
fjm2.add(fcor2); else if (event.getSource() == fcor2)
fjm2.add(fcor3); p1.setBackground(Color.ORANGE);
else if (event.getSource() == fcor3)
//----------------------------------------// p1.setBackground(Color.YELLOW);
else if (event.getSource() == fcor4)
//----------------------------------------// p1.setBackground(Color.GREEN);
// Criando objetos dos sub JMenu. // else if (event.getSource() == fcor5)
//----------------------------------------// p1.setBackground(Color.BLUE);
fjm3 = new JMenu("Frias"); else if (event.getSource() == fcor6)
p1.setBackground(Color.WHITE);
// Criando elementos do sub JMenu de cores quentes. }
fcor4 = new JMenuItem("Verde");
fcor5 = new JMenuItem("Azul"); public static void main(String args[])
fcor6 = new JMenuItem("Branco"); {
J13E1 janela1 = new J13E1();
// Adicionando tratamento de evento aos itens de menu. }
fcor4.addActionListener(this);
fcor5.addActionListener(this); }
fcor6.addActionListener(this); Figura 1.3 : Código Java para a interface gráfica da Figura 1.1.
3 4
Exercício 2: Modificar a interface gráfica do Exercício 1 de modo que todos os Por
itens de menu sejam declarados em um vetor. Para tanto será necessário // Criando elementos do sub JMenu de cores quentes e frias.
realizar modificações nos seguintes trechos do código: for(int i=0; i < cores.length; i++)
fcor[i].addActionLister(this);
Modificação 1: No campo da classe
Modificação 4: No método createJMenu1
Trocar
private JMenuItem fcor1, fcor2, fcor3, fcor4, fcor5, fcor6; Trocar
// Adicionando itens ao sub JMenu.
Por fjm2.add(fcor1);
private JMenuItem fcor[] = new JMenuItem[6]; fjm2.add(fcor2);
private String nomes[] = {"Vermelho", "Laranja", "Amarelo", "Verde", "Azul", fjm2.add(fcor3);
"Branco"};
private Color cores[] = {Color.RED, Color.ORANGE, Color.YELLOW, // Adicionando itens ao sub JMenu.
Color.GREEN, Color.BLUE, Color.WHITE}; fjm2.add(fcor4);
fjm2.add(fcor5);
Modificação 2: No método createJMenu1 fjm2.add(fcor6);
Trocar Por
// Criando elementos do sub JMenu de cores quentes. // Adicionando itens ao sub JMenu cores quentes.
fcor1 = new JMenuItem("Vermelho"); for(int i=0; i < 3; i++)
fcor2 = new JMenuItem("Laranja"); fjm2.add (fcor[i]);
fcor3 = new JMenuItem("Amarelo");
// Adicionando itens ao sub JMenu cores frias.
// Criando elementos do sub JMenu de cores frias. for(int i=3; i < cores.length; i++)
fcor4 = new JMenuItem("Verde"); fjm3.add (fcor[i]);
fcor5 = new JMenuItem("Azul");
fcor6 = new JMenuItem("Branco"); Modificação 5: No método actionPerformed
Por Trocar
// Criando elementos do sub JMenu de cores quentes e frias. // Verificando as fontes de evento, que sao
for(int i=0; i < cores.length; i++) // os itens de menu de cor de fundo, e para
fcor[i] = new JMenuItem(nomes[i]); // cada uma definir a cor de fundo adequada.
if (event.getSource() == fcor1)
Modificação 3: No método createJMenu1 p1.setBackground(Color.RED);
else if (event.getSource() == fcor2)
Trocar p1.setBackground(Color.ORANGE);
// Adicionando tratamento de evento aos itens de menu. else if (event.getSource() == fcor3)
fcor1.addActionListener(this); p1.setBackground(Color.YELLOW);
fcor2.addActionListener(this); else if (event.getSource() == fcor4)
fcor3.addActionListener(this); p1.setBackground(Color.GREEN);
else if (event.getSource() == fcor5)
// Adicionando tratamento de evento aos itens de menu. p1.setBackground(Color.BLUE);
fcor4.addActionListener(this); else if (event.getSource() == fcor6)
fcor5.addActionListener(this); p1.setBackground(Color.WHITE);
fcor6.addActionListener(this);
5 6
Por GRUPO 1 - Empregando Menus – O Menu Arquivo
// Laco para identificar a fonte de evento e realizar a ação correspondente.
for(int i=0; i < cores.length; i++)
if (event.getSource() == fcor[i])
p1.setBackground(cores[i]);
7 8
public void createContents() public void actionPerformed(ActionEvent e)
{ {
p1 = createJPanel1(); // Aparece caixa de mensagem.
createJMenu1(); if (e.getSource() == sobreItem)
add(p1); JOptionPane.showMessageDialog(null,
} "Este é um exemplo\nde uso de menus", "Sobre",
JOptionPane.PLAIN_MESSAGE);
public JPanel createJPanel1() // Termina o programa.
{ else if (e.getSource() == fimItem)
p1 = new JPanel(); System.exit( 0 );
return p1; }
}
public static void main(String args[])
public void createJMenu1() {
{ J13G1 j1 = new J13G1();
JFrame frame = new JFrame("Teste de menus"); }
barra = new JMenuBar(); // a barra de menus é um contêiner
}
//--------------------------------------------------------------//
// Menu Arquivo
//--------------------------------------------------------------//
arqMenu = new JMenu("Arquivo");
sobreItem = new JMenuItem("Sobre...");
sobreItem.addActionListener(this);
fimItem = new JMenuItem("Fim");
fimItem.addActionListener(this);
// Menu Arquivo
arqMenu.setMnemonic('A');
sobreItem.setMnemonic('S');
fimItem.setMnemonic('F');
arqMenu.add(sobreItem);
arqMenu.add(fimItem);
//--------------------------------------------------------------//
9 10
GRUPO 2 - Empregando Menus – O Menu Formatar e Submenu Cores setLocation(250,250);
setDefaultCloseOperation(EXIT_ON_CLOSE);
createContents(); // Metodo que adiciona componentes.
setVisible(true);
}
11 12
//--------------------------------------------------------------// GRUPO 3 - Empregando Menus – O Menu Formatar e Submenu Fontes
// Submenu Cores //
//--------------------------------------------------------------//
corMenu.setMnemonic('C');
for (int i = 0; i < cor.length; i++)
{
corMenu.add(corItem[i]);
corGrupo.add(corItem[i]);
corItem[i].addActionListener(this);
}
corItem[0].setSelected(true);
// Adiciona opcoes de cores ao Format Menu.
formatMenu.add(corMenu);
formatMenu.addSeparator();
// Adiciona o Format Menu ao conjunto de Menus.
barra.add(formatMenu);
Figura 3.3: Telas da Interface para o Menu Formatar e o Submenu Fontes.
//--------------------------------------------------------------//
// Configura a barra de menus para o JFrame
//--------------------------------------------------------------//
setJMenuBar(barra);
// Definições iniciais sobre o texto que aparece no p1.
mostra = new JLabel("Texto teste", SwingConstants.CENTER);
mostra.setForeground(cores[0]);
mostra.setFont(new Font("TimesRoman", Font.PLAIN, 72)); import java.awt.*;
p1.setBackground(Color.white); import java.awt.event.*;
p1.add(mostra, BorderLayout.CENTER); import javax.swing.*;
//--------------------------------------------------------------//
} public class J13G3 extends JFrame implements ActionListener
{
public void actionPerformed(ActionEvent e) private JPanel p1;
{ private JLabel mostra;
for (int i = 0; i < corItem.length; i++) private Color cores[] = {Color.black, Color.blue, Color.red, Color.green};
{ private String cor[] = {"Preto", "Azul", "Vermelho", "Verde"};
if (corItem[i].isSelected()) private String fonte[] = {"TimesRoman", "Courier", "Helvetica", "Arial"};
{ private String estilos[] = {"Negrito", "Itálico"};
mostra.setForeground(cores[i]); private JRadioButtonMenuItem corItem[], fontItem[];
break; private JCheckBoxMenuItem estItem[];
} private JMenu arqMenu, formatMenu, corMenu, fontMenu;
} private JMenuItem sobreItem, fimItem;
repaint(); private JMenuBar barra;
} private ButtonGroup fontGrupo, corGrupo;
private int estilo;
public static void main(String args[])
{ // Dimensoes iniciais do JFrame.
J13G2 exemplo = new J13G2(); private int WIDTH = 500;
} private int HEIGHT = 200;
}
13 14
// Definindo configuracoes da janela. fontGrupo = new ButtonGroup();
public J13G3() for (int i = 0; i < fonte.length; i++)
{ {
setTitle("JMenu G2"); fontItem[i] = new JRadioButtonMenuItem(fonte[i]);
setSize(WIDTH,HEIGHT); fontMenu.add(fontItem[i]);
setLocation(250,250); fontGrupo.add(fontItem[i]);
setDefaultCloseOperation(EXIT_ON_CLOSE); fontItem[i].addActionListener(this);
createContents(); // Metodo que adiciona componentes. }
setVisible(true); fontItem[0].setSelected(true);
} //--------------------------------------------------------------//
15 16
GRUPO 4 - Empregando Menus – O Menu Formatar e Submenu Fontes setDefaultCloseOperation(EXIT_ON_CLOSE);
createContents(); // Metodo que adiciona componentes.
setVisible(true);
}
17 18
// Adiciona barra de separacao entre submenus. GRUPO 5 - Empregando Todos os Menus
fontMenu.addSeparator();
// Adiciona o Font Menu ao Format Menu.
// O Format Menu sera adicionado na barra de menus.
formatMenu.add(fontMenu);
// Adiciona o Format Menu ao conjunto de Menus.
barra.add(formatMenu);
// Configura a barra de menus para o JFrame
setJMenuBar(barra);
import java.awt.*;
public void actionPerformed(ActionEvent e) import java.awt.event.*;
{ import javax.swing.*;
if (e.getSource() == estItem[0] || e.getSource() == estItem[1]) public class J13G5 extends JFrame implements ActionListener
{ {
estilo = 0; private JPanel p1;
if (estItem[0].isSelected()) estilo += Font.BOLD; private JLabel mostra;
if (estItem[1].isSelected()) estilo += Font.ITALIC; private Color cores[] = {Color.black, Color.blue, Color.red, Color.green};
mostra.setFont(new Font(mostra.getFont().getName(), estilo, 72)); private String cor[] = {"Preto", "Azul", "Vermelho", "Verde"};
} private String fonte[] = {"TimesRoman", "Courier", "Helvetica", "Arial"};
repaint(); private String estilos[] = {"Negrito", "Itálico"};
} private JRadioButtonMenuItem corItem[], fontItem[];
private JCheckBoxMenuItem estItem[];
public static void main(String args[]) private JMenu arqMenu, formatMenu, corMenu, fontMenu;
{ private JMenuItem sobreItem, fimItem;
J13G4 j1 = new J13G4(); private JMenuBar barra;
} private ButtonGroup fontGrupo, corGrupo;
} private int estilo = 0;
19 20
setLocation(250,250); //--------------------------------------------------------------//
setDefaultCloseOperation(EXIT_ON_CLOSE); // Submenu Cores //
createContents(); // Metodo que adiciona componentes. //--------------------------------------------------------------//
setVisible(true);
} // Submenu Cores
corMenu = new JMenu("Cores");
public void createContents() corItem = new JRadioButtonMenuItem[cor.length];
{ corGrupo = new ButtonGroup();
p1 = createJPanel1(); for (int i = 0; i < cor.length; i++)
createJMenu3(); {
add(p1); corItem[i] = new JRadioButtonMenuItem(cor[i]);
} }
21 22
// Laco para verificar a cor escolhida.
// Adiciona barra de separacao entre submenus. for (int i = 0; i < corItem.length; i++)
fontMenu.addSeparator(); {
if (corItem[i].isSelected())
//--------------------------------------------------------------// {
// Submenu Estilos. mostra.setForeground(cores[i]);
//--------------------------------------------------------------// break;
estItem = new JCheckBoxMenuItem[estilos.length]; }
for (int i = 0; i < estilos.length; i++) }
{
estItem[i] = new JCheckBoxMenuItem(estilos[i]); // Laco para verificar estilo de texto.
fontMenu.add(estItem[i]); for (int i = 0; i < fontItem.length; i++)
estItem[i].addActionListener(this); {
} if (e.getSource() == fontItem[i])
//--------------------------------------------------------------// {
mostra.setFont(new Font(fontItem[i].getText(), Font.PLAIN, 72));
// Anexa o arqMenu ao contêiner break;
barra.add(arqMenu); }
// Adiciona o Font Menu ao Format Menu. }
// O Format Menu sera adicionado na barra de menus.
formatMenu.add(fontMenu); // Verifica se foi escolhido Negrito ou Italico.
// Adiciona o Format Menu ao conjunto de Menus. if (e.getSource() == estItem[0] || e.getSource() == estItem[1])
barra.add(formatMenu); {
// Configura a barra de menus para o JFrame estilo = 0;
setJMenuBar(barra); if (estItem[0].isSelected()) estilo += Font.BOLD;
if (estItem[1].isSelected()) estilo += Font.ITALIC;
// Definições iniciais sobre o texto que aparece em p1. mostra.setFont(new Font(mostra.getFont().getName(), estilo, 72));
mostra = new JLabel("Texto teste", SwingConstants.CENTER); }
mostra.setForeground(cores[0]); repaint();
mostra.setFont(new Font("TimesRoman", Font.PLAIN, 72)); }
p1.setBackground(Color.white);
p1.add(mostra, BorderLayout.CENTER); public static void main(String args[])
//--------------------------------------------------------------// {
} J13G5 j1 = new J13G5();
}
public void actionPerformed(ActionEvent e) }
{
// Aparece caixa de mensagem.
if (e.getSource() == sobreItem)
JOptionPane.showMessageDialog(null,
"Este é um exemplo\nde uso de menus", "Sobre",
JOptionPane.PLAIN_MESSAGE);
// Termina o programa.
else if (e.getSource() == fimItem)
System.exit( 0 );
23 24