Вы находитесь на странице: 1из 21

Prof. M.Sc. Eng.

Fernando Hideo Fukuda


Interfaces Homem Mquina


APOSTILA DE EXERCCIOS PRTICOS SOBRE
SWING DA JAVA

Prof. M.Sc. Eng. Fernando Hideo Fukuda

Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
Objetivo

O objetivo principal desta apostila instruir de uma maneira simples e prtica,
como criar, compilar e executar programas em Java utilizando as APIs do Swing.

Introduo

O Swing faz parte de uma coleo maior de software, a JFC, que a abreviao de
Java
TM
Foundation Classes, a qual engloba um grupo de caractersticas para ajudar
os programadores a construir interfaces grficas com o usurio (GUI). O Swing
inclui classes que vo desde botes e caixas de combinaes, at rvores, grades e
menus.


Configurando

Para executar um programa em Java, primeiro voc deve baixar o compilador Java
(gratuitamente) no site da Javasoft (www.javasoft.com). As APIs do Swing esto
disponveis a partir da plataforma Java 2 (incluindo as verses 1.2 e 1.3).
Aps baix-lo, voc deve instal-lo.
Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
Entendendo a Estrutura

Vamos comear entendendo como a estrutura de um programa escrito em Java.
Todo programa Java, deve conter ao menos uma declarao da forma:



public class Nome
{

public static void main(String args[])
{
...
}
}



Onde Nome o nome da classe e a parte "..." o cdigo Java vlido, a ser
executado no programa. O nome de uma classe um identificador, como qualquer
outro presente no programa, por isso no deve conter espaos ou outros caracteres
grficos, isto , deve ser um nome composto de uma seqncia de caracteres que
seja vlida para um identificador. Outros exemplos de identificadores so nomes de
variveis, nomes de comandos, etc.
Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
Comeando a Programar

Vamos comear digitando um programa bem simples, mas para isso,
recomendvel utilizar um editor de texto simples como o Kate (cone) ou vi do
Linux.

O nome do arquivo deve ser exatamente igual ao nome que aparece aps a palavra
class na primeira linha do programa e dever ter .java como extenso. Assim
sendo, o nome dever ser "AloPessoal.java". Cuidado para digitar corretamente as
maisculas e minsculas, pois a linguagem Java sensvel ao tipo de caixa das
letras.


public class AloPessoal
{

public static void main(String args[])
{

System.out.println("Alo pessoal!");

}

}




Compilando o cdigo fonte

Aps ter salvo o arquivo, acessamos o modo de linha de comando atravs do
Konsole (cone) do Linux e chamamos o compilador Java, para criar o cdigo
binrio (op codes), atravs da linha de comando, do seguinte modo:


javac AloPessoal.java


Com isso, ser criado um arquivo binrio (desde que tudo corra bem) com mesmo
nome do arquivo original, mas com a extenso .class ao invs de .java. No nosso
caso, teramos um arquivo AloPessoal.class. Entre as (muitas) coisas que
poderiam dar errado nesse momento, o cdigo fonte pode conter erros. Esse no
dever ser o caso, se tiver digitado o programa exatamente como aparece acima.
Se, porm, o compilador emitir mensagens de erro, ser preciso identificar as
linhas que esto incorretas, corrigi-las no editor, e chamar o compilador
novamente. As linhas que contm algum tipo de incorreo so listadas pelo
compilador juntamente com seu nmero, facilitando sua localizao no editor.

Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
Executando o cdigo

Para podermos executar o programa necessrio chamar o interpretador Java.
Podemos faz-lo atravs da linha de comando do seguinte modo:


java Nome_da_classe



onde Nome_da_classe o nome do arquivo sem a extenso .class. Em nosso
caso, este ser AloPessoal. Ao executar o programa, ele dever exibir na tela a
frase:



Alo pessoal!


Se isto no ocorrer, volte atrs e verifique se o programa foi digitado exatamente
como aparece na listagem acima.



Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 1

Editar com o Kate o arquivo AloPessoal.java e salvar.

public class AloPessoal
{

public static void main(String args[])
{

System.out.println("Alo pessoal!");

}

}

Compilar o programa AloPessoal.java pelo Konsole:

javac AloPessoal [Enter]

Executar o programa:

java AloPessoal [Enter]






Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 2

Alterar o programa para criar um painel.
Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JPanel p1 = new JPanel();

p1.add(new JButton("UM"));
p1.add(new JButton("DOIS"));
p1.add(new JButton("TRS"));
p1.add(new JButton("QUATRO"));

f1.setContentPane(p1);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );


}
}

Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 3

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JPanel p1 = new JPanel();

p1.add(new JLabel("Nome: "));
p1.add(new JTextField(40));

f1.setContentPane(p1);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );


}
}


Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 4

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JPanel p1 = new JPanel();

p1.add(new JLabel("Senha: "));
p1.add(new JPasswordField(6));

f1.setContentPane(p1);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );


}
}



Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 5

Editar, substituir os comentrios pelos respectivos cdigos, salvar , compilar e
executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JPanel p1 = new JPanel();

p1.add(new JLabel("Sexo: "));
JRadioButton mas = new JRadioButton(Masculino, true);
JRadioButton fem = new JRadioButton(Feminino);

//adicionar mas no painel p1
//adicionar fem no painel p1
//criar um grupo de botes chamado sexo
//agrupar mas no grupo de botes sexo
//agrupar fem no grupo de botes sexo

f1.setContentPane(p1);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );


}
}




Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 6

Editar, substituir os comentrios pelos respectivos cdigos, salvar , compilar e
executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JPanel p1 = new JPanel();

p1.add(new JLabel("Interesse: "));

//criar e adicionar no p1 uma caixa de seleo com a string
//Cinema e marcado por default
//criar e adicionar no p1 uma caixa de seleo com a string
//Teatro
//criar e adicionar no p1 uma caixa de seleo com a string
//Televiso

f1.setContentPane(p1);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );


}
}



Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 7

Editar, substituir os comentrios pelos respectivos cdigos, salvar , compilar e
executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JPanel p1 = new JPanel();

p1.add(new JLabel("Estados: "));

//criar uma lista de seleo chamada estado com as strings
//dos estados do Brasil
//adicionar a lista de seleo estado no painel p1

f1.setContentPane(p1);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );


}
}


Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 8

Editar, substituir os comentrios pelos respectivos cdigos, salvar , compilar e
executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JPanel p1 = new JPanel();

p1.add(new JLabel("Profisso: "));

//criar uma caixa de combinao chamada prof com as
//strings Engenheiro e Administrador
//habilitar a edio da caixa de combinao prof
//adicionar a caixa de combinao prof no painel p1

f1.setContentPane(p1);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );


}
}



Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 9

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

f1.setVisible(true);

JOptionPane.showMessageDialog(f1, "Fim de arquivo.");

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}


Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 10

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

f1.setVisible(true);

JOptionPane.showConfirmDialog(f1, "Deseja cancelar o pedido?");

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}



Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 11

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

f1.setVisible(true);

JOptionPane.showInputDialog(f1, "Digite o seu CPF.");

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}




Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 12

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

f1.setVisible(true);

JLabel msg = new JLabel("Digite a sua conta e senha.");
JTextField conta = new JTextField(10);
JPasswordField senha = new JPasswordField();

JOptionPane.showOptionDialog(f1, new Object[] {msg, conta, senha},
"Login",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, null, null);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}





Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 13

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

f1.setVisible(true);

JLabel msg = new JLabel("Veja o resultado.");

JOptionPane.showOptionDialog(f1, new Object[] {msg},
"Teste dos parmetros",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, null, null);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}


Substitua OK_CANCEL_OPTION por:
a- YES_NO_OPTION
b- YES_NO_CANCEL_OPTION

Substitua QUESTION_MESSAGE por:
a- WARNING_MESSAGE
b- ERROR_MESSAGE







Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 14

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);
f1.setVisible(true);

JLabel msg = new JLabel("Veja o resultado.");

int resp = JOptionPane.showOptionDialog(f1, new Object[] {msg},
"Teste dos parmetros",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, null, null);

switch(resp)
{
case JOptionPane.OK_OPTION:
JOptionPane.showMessageDialog(f1, Voc clicou OK.);
break;
case JOptionPane.CANCEL_OPTION:
JOptionPane.showMessageDialog(f1, Voc clicou CANCEL.);
break;
}

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}



Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 15

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JMenu m1 = new JMenu("Arquivo");
m1.add(new JMenuItem("Novo"));
m1.setMnemonic(KeyEvent.VK_A);
m1.add(new JMenuItem("Abrir..."));
m1.add(new JMenuItem("Salvar"));
m1.add(new JMenuItem("Salvar como..."));
m1.add(new JMenuItem("Fechar"));
m1.addSeparator();
m1.add(new JMenuItem("Sair"));

JMenu m2 = new JMenu("Exibir");
m2.setMnemonic(KeyEvent.VK_E);
m2.add(new JCheckBoxMenuItem("Ferramenta Grfica", true));
m2.add(new JCheckBoxMenuItem("Ferramenta Matemtica"));

JMenu m3 = new JMenu("Ajuda");
m3.setMnemonic(KeyEvent.VK_J);
m3.add(new JMenuItem("Sobre..."));

JMenuBar mp = new JMenuBar();
mp.add(m1);
mp.add(m2);
mp.add(m3);

f1.setJMenuBar(mp);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}


Experimente substituir m3.setMnemonic(KeyEvent.VK_J); por:

m3.setMnemonic(KeyEvent.VK_H);




Prof. M.Sc. Eng. Fernando Hideo Fukuda
Interfaces Homem Mquina
EXERCCIO 16

Editar, salvar , compilar e executar o programa abaixo.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Teste
{
public static void main(String args[])
{
JFrame f1 = new JFrame ("Teste");
f1.setSize(500,400);

JMenu sm = new JMenu("Novo");
sm.add(new JMenuItem("Texto"));
sm.add(new JMenuItem("Dados"));

JMenu m1 = new JMenu("Arquivo");
m1.setMnemonic(KeyEvent.VK_A);
m1.add(sm);
m1.add(new JMenuItem("Abrir..."));
m1.add(new JMenuItem("Salvar"));
m1.add(new JMenuItem("Salvar como..."));
m1.add(new JMenuItem("Fechar"));
m1.addSeparator();
m1.add(new JMenuItem("Sair"));

JMenu m2 = new JMenu("Exibir");
m2.setMnemonic(KeyEvent.VK_E);
m2.add(new JCheckBoxMenuItem("Ferramenta Grfica", true));
m2.add(new JCheckBoxMenuItem("Ferramenta Matemtica"));

JMenu m3 = new JMenu("Ajuda");
m3.setMnemonic(KeyEvent.VK_J);
m3.add(new JMenuItem("Sobre..."));

JMenuBar mp = new JMenuBar();
mp.add(m1);
mp.add(m2);
mp.add(m3);

f1.setJMenuBar(mp);

f1.setVisible(true);

f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
}
}