Você está na página 1de 53

Instituto Federal de Educao, Cincia e Tecnologia de So Paulo

Apostila de Introduo
Programao Orientada a Objetos
Uma Abordagem Prtica

Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos

Sumrio
Captulo 1
Apresentando o Ambiente de Desenvolvimento Integrado Netbeans ....................... 4
Contedo ............................................................................................................... 4
O que o Netbeans?............................................................................................. 4
Configurando o Projeto .......................................................................................... 5
Adicionando Cdigo ao Arquivo de Origem Gerado .............................................. 6
Compilando e Executando o Programa ................................................................. 7
Construindo e Implantando a Aplicao ................................................................ 8
Captulo 2
Apresentando a Java Foundation Classes (JFC) .................................................... 10
Contedo ............................................................................................................. 10
Viso Gerado do JFC .......................................................................................... 10
Componentes ...................................................................................................... 11
JFrame ............................................................................................................. 11
JPanel .............................................................................................................. 12
JTextField e JLabel .......................................................................................... 12
JTextArea ......................................................................................................... 13
JPasswordField ................................................................................................ 14
JButton ............................................................................................................. 15
JCheckBox ....................................................................................................... 16
JComboBox...................................................................................................... 17
Captulo 3
Layout Manager ...................................................................................................... 20
Layout Manager ................................................................................................... 20
Captulo 4
Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos


Events, Listeners e Sources .................................................................................... 27
Contedo ............................................................................................................. 27
Events, Listeners e Sources ................................................................................ 27
Captulo 5
Ponto de Entrada, Variveis, Estruturas de Deciso e Repetio .......................... 34
Contedo ............................................................................................................. 34
Ponto de Entrada Mtodo Main ........................................................................ 34
Captulo 6
Variveis, Estruturas de Deciso e Repetio ........................................................ 42
Contedo ............................................................................................................. 42
Captulo 7
Unindo as partes do projeto Sorteio ........................................................................ 47
Contedo ............................................................................................................. 47
Referncias.................................................................................................53

Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos

Captulo 1
Apresentando

Ambiente

de

Desenvolvimento

Integrado

Netbeans
Observao: Captulo baseado no Tutorial para Incio Rpido do Java do NetBeans IDE

disponvel em:

http://netbeans.org/kb/docs/java/quickstart_pt_BR.html

Contedo

O que o Netbeans?

Configurando o Projeto

Adicionando Cdigo ao Arquivo de Origem Gerado

Compilando e Executando a Aplicao

Construindo e Implantando a Aplicao

O que o Netbeans?
O NetBeans um projeto open source de sucesso, com uma grande base de
utilizadores, uma crescente comunidade e perto de 100 (e a aumentar!) parceiros
mundiais. A Sun Microsystems fundou o projeto NetBeans em junho de 2000 e continua a
ser o seu principal patrocinador.
Actualmente existem dois produtos: o IDE NetBeans (NetBeans IDE) e a
Plataforma NetBeans (NetBeans Platform).
O NetBeans IDE um ambiente de desenvolvimento - uma ferramenta para
programadores, que permite escrever, compilar, depurar e instalar programas. O IDE
completamente escrito em Java, mas pode suportar qualquer linguagem de programao.
Existe tambm um grande nmero de mdulos para extender as funcionalidades do IDE
NetBeans. O NetBeans IDE um produto livre, sem restries sua forma de utilizao.
Tambm est disponvel a Plataforma NetBeans; uma base modular e extensvel
que pode ser usada como infra-estrutura para a criao de grandes aplicaes de
desktop. Os Parceiros fornecem plugins que podem ser facilmente integrados na
Plataforma, e que podem ser utilizados para desenvolver ferramentas e solues prprias.
Ambos os produtos so open source e livres para uso comercial e no comercial. O
cdigo fonte est disponvel para ser usado atravs da licena Common Development and
Distribution License (CDDL).
Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos


Configurando o Projeto
Para criar um projeto do IDE:
1. Inicie o NetBeans IDE.
2. No IDE, escolha Arquivo > Novo Projeto (Ctrl-Shift-N), como mostrado na figura
abaixo.

3. No assistente Novo Projeto, expanda a categoria Java e selecione Aplicao Java,


como mostrado na figura abaixo. Em seguida, clique em Prximo.

4. Na pgina Nome e Localizao do assistente, adote o procedimento a seguir


(como mostrado na figura abaixo):

no campo Nome do Projeto, digite HelloWorldApp.

Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos

Deixe desmarcada a caixa de seleo Utilizar Pasta Dedicada para Armazenar


Bibliotecas.
No campo Criar Classe Principal, digite helloworldapp.HelloWorldApp.

Clique em Finalizar.

O projeto criado e aberto no IDE. Agora voc deve ver os seguintes componentes:
A janela Projetos, que contm uma view em rvore dos componentes do projeto,
incluindo arquivos de cdigo-fonte, bibliotecas de que seu cdigo depende, e assim
por diante.
A janela Editor de Cdigo-fonte com um arquivo chamado HelloWorldApp aberta.
A janela Navegador, que voc pode utilizar para navegar rapidamente entre elementos
dentro da classe selecionada.

Adicionando Cdigo ao Arquivo de Origem Gerado


Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos


Como a caixa de seleo Criar Classe Principal foi marcada no assistente de Novo
Projeto, o IDE criou uma classe principal de esqueleto. Voc pode adicionar a mensagem
"Hello World!" ao cdigo de esqueleto substituindo a linha:

// TODO code application logic here


pela linha:

System.out.println("Hello World!");
Salve a alterao escolhendo Arquivo > Salvar.
O arquivo deve ter uma aparncia semelhante seguinte amostra de cdigo.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package helloworldapp;
/**
*
* @author <your name>
*/
public class HelloWorldApp {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

Compilando e Executando o Programa


Devido funcionalidade Compilar ao Salvar do IDE, no necessrio compilar
manualmente o projeto para que seja executado no IDE. Quando um arquivo de cdigofonte Java salvo, ele compilado automaticamente pelo IDE.
A funcionalidade Compilar ao Salvar pode ser desativado na janela Propriedades
do Projeto. Clique com o boto direito do mouse no projeto e selecione Propriedades. Na
janela Propriedades, escolha a guia Compilao. A caixa de seleo Compilar ao Salvar
est na parte superior. Observe que, na janela Propriedades do Projeto, possvel
configurar vrias definies para o projeto: bibliotecas do projeto, encapsulamento,
construo, execuo, etc.
Para executar o programa:
1.

Escolha Executar > Executar Projeto (F6).


A figura abaixo mostra o que voc deve ver agora.

Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos

Parabns! Seu programa funciona!


Se houver erros de compilao, eles so marcados com glifos vermelhos nas
margens esquerda e direita do Editor de Cdigo-fonte. Os glifos da margem esquerda
indicam os erros das linhas correspondentes. Os glifos da margem direita mostram todas
as reas do arquivo que apresentam erros, incluindo os erros das linhas que no esto
visveis. possvel passar o mouse sobre a marca do erro para ver a descrio deste
erro. possvel clicar em um glifo da margem direita para ir para a linha que apresenta o
erro.

Construindo e Implantando a Aplicao


Depois de escrever e executar o teste da aplicao, voc pode utilizar o comando
Limpar e Construir para construir a aplicao para implantao. Quando o comando
Limpar e Construir utilizado, o IDE executa um script de construo que realiza as
seguintes tarefas:
Deleta os arquivos compilados anteriormente e outras sadas de construo.

Recompila a aplicao e constri um arquivo JAR que contm arquivos


compilados.

Para construir sua aplicao:


Escolha Executar > Limpar e Construir Projeto Principal (Shift-F11)
possvel exibir as sadas de construo abrindo a janela Arquivos e expandindo o
n HelloWorldApp. O arquivo bytecode compilado HelloWorldApp.class est no
subnbuild/classes/helloworldapp.
O
arquivo
JAR
implantvel
que
contm
o HelloWorldApp.class est no n dist.

Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos


Exerccios Tericos
Qual empresa e em que ano foi fundado o projeto Netbeans?
________________________________________________________________________
________________________________________________________________________
1.

Como fao para criar um novo projeto no Netbeans?


________________________________________________________________________
________________________________________________________________________
2.

3. Qual a localizao do novo projeto apresentado como exemplo nesta aula?


________________________________________________________________________
________________________________________________________________________
4. O que acontece com os arquivos .java quando salvo o meu projeto?
________________________________________________________________________
________________________________________________________________________

Em que n so armazenados os arquivos .jar.


________________________________________________________________________
________________________________________________________________________
5.

Anotaes de Aula
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________

Professor Jos Ricardo Ferreira Cardoso

Introduo Programao Orientada a Objetos

Captulo 2
Apresentando a Java Foundation Classes (JFC)
Observao: Captulo baseado na apostila da k19 disponvel em: http://www.k19.com.br/downloads/apostilas/java/k19-k11orientacao-a-objetos-em-java.

Contedo

Viso Geral do JFC

Componentes
o JFrame
o JPanel
o JTextField
o JLabel
o JTextArea
o JPasswordField
o JButton
o JCheckBox
o JComboBox

Viso Gerado do JFC


A plataforma Java oferece recursos sofisticados para construo de interfaces
grficas de usurio GUI. Esses recursos fazem parte do framework Java Foundation
Classes (JFC). Eis uma viso geral do JFC:
Java Web Start: Permite que aplicaes Java sejam facilmente implantadas nas
mquinas dos usurios.
Java Plug-In: Permite que applets executem dentro dos principais navegadores.
Java 2D: Possibilita a criao de imagens e grficos 2D.
Java 3D: Possibilita a manipulao de objetos 3D.
Java Sound: Disponibiliza a manipulao de sons para as aplicaes Java.
AWT (Abstract Window Toolkit): Conjunto bsico de classes e interfaces que
definem os componentes de uma janela desktop. AWT a base para Java Swing API.
Swing: Conjunto sofisticado de classes e interfaces que definem os componentes
visuais e servios necessrios para construir uma interface grfica de usurio.
Professor Jos Ricardo Ferreira Cardoso

10

Introduo Programao Orientada a Objetos


Componentes
Os itens que aparecem em uma interface grfica de usurio (janelas, caixas de
texto, botes, listas, caixas de seleo, entre outros) so chamados de componentes.
Alguns componentes podem ser colocados dentro de outros componentes, por exemplo,
uma caixa de texto dentro de uma janela.
O primeiro passo para construir uma interface grfica de usurio conhecer os
principais componentes do Java Swing API.

JFrame
A classe JFrame define janelas com ttulo, borda e alguns itens definidos pelo
sistema operacional como boto para minimizar ou maximizar.

possvel associar uma das aes abaixo ao boto de fechar janela.

DO_NOTHING_ON_CLOSE: No faz nada.

HIDE_ON_CLOSE: Esconde a janela (Padro no JFRAME).

DISPOSE_ON_CLOSE: Fecha a janela (Mais utilizado em janelas internas).

EXIT_ON_CLOSE: Fecha a aplicao (System.exit(0)).

Professor Jos Ricardo Ferreira Cardoso

11

Introduo Programao Orientada a Objetos


Por padro, o visual das janelas utiliza o estilo definido pelo sistema operacional.
Mas, podemos alterar esse comportamento padro.

JPanel
A classe JPanel define um componente que basicamente utilizado para agrupar
nas janelas outros componentes como caixas de texto, botes, listas, entre outros.
Normalmente, criamos um objeto da classe JPanel e associamos a um objeto da
classe JFrame para agrupar todo o contedo da janela.

JTextField e JLabel
A classe JTextField define os campos de texto que podem ser preenchidos pelo
usurio. A classe JLabel define rtulos que podem ser utilizados por exemplo em caixas
de texto.

Professor Jos Ricardo Ferreira Cardoso

12

Introduo Programao Orientada a Objetos

Resultado:

JTextArea
Para textos maiores podemos aplicar o componente definido pela classe
JTextArea, que resulta na tela abaixo.

Professor Jos Ricardo Ferreira Cardoso

13

Introduo Programao Orientada a Objetos

JPasswordField
Em formulrios que necessitam de caixa de texto para digitar senhas, podemos
aplicar o componente definido pela classe JPasswordField. O contedo digitado na caixa
de texto gerado pelo componente da classe JPasswordField no apresentado ao
usurio. A seguir apresentado o cdigo que resulta na seguinte tela:

Professor Jos Ricardo Ferreira Cardoso

14

Introduo Programao Orientada a Objetos

JButton
Os botes que permitem que os usurios indiquem quais aes ele deseja que a
aplicao execute podem ser criados atravs do componente definido pela classe
JButton. O cdigo apresentado a seguir resulta na seguinte tela:

Professor Jos Ricardo Ferreira Cardoso

15

Introduo Programao Orientada a Objetos

JCheckBox
Podemos criar formulrios com checkboxs utilizando o componente da classe
JCheckBox. O cdigo a seguir resulta na seguinte tela:

Professor Jos Ricardo Ferreira Cardoso

16

Introduo Programao Orientada a Objetos

JComboBox
Podemos criar formulrios com combo boxs utilizando o componente da classe
JComboBox. A figura a baixo mostra a tela gerada pelo cdigo a seguir.

Professor Jos Ricardo Ferreira Cardoso

17

Introduo Programao Orientada a Objetos

Professor Jos Ricardo Ferreira Cardoso

18

Introduo Programao Orientada a Objetos


Exerccios Tericos
Qual ao devo associar ao mtodo setDefaultCloseOperation, para apenas fechar
uma janela interna?
________________________________________________________________________
________________________________________________________________________
1.

Qual componente apresentado nesta aula que tem a finalidade de agrupar um


determinado contedo em uma janela?
________________________________________________________________________
________________________________________________________________________
2.

Qual a finalidade da Classe JTextField?


________________________________________________________________________
________________________________________________________________________
3.

Quando interessante utilizar um objeto baseado na classe JPasswordField?


________________________________________________________________________
________________________________________________________________________
4.

5. possvel passar um vetor de Strings no construtor da classe JComboBox?


________________________________________________________________________
________________________________________________________________________

Anotaes de Aula
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
_______________________________________________________

Professor Jos Ricardo Ferreira Cardoso

19

Introduo Programao Orientada a Objetos

Captulo 3
Layout Manager
Observao: Captulo baseado na apostila da k19 disponvel em: http://www.k19.com.br/downloads/apostilas/java/k19-k11orientacao-a-objetos-em-java.

Layout Manager
o BorderLayout
o FlowLayout
o BoxLayout
o GridLayout

Layout Manager
Muitas pessoas consideram que uma das tarefas mais complicadas quando se
utiliza a Java Swing API o posicionamento e o tamanho dos componentes.
O posicionamento e tamanho dos componentes Java Swing so controlados por
Layout Managers.
Um Layout Manager um objeto Java associado a um componente Java Swing
que na maioria dos casos um componente de background como uma janela ou um
painel. Um Layout Manager controla os componentes que esto dentro do componente ao
qual ele est associado.
Os quatro principais Layout Managers do Java Swing so:
BorderLayout: Esse Layout Manager divide a rea de um componente de
background em cinco regies (norte, sul, leste, oeste e centro). Somente um componente
pode ser adicionado em cada regio. Eventualmente, o BorderLayout altera o tamanho
preferencial dos componentes para torn-los compatveis com o tamanho das regies. O
BorderLayout o Layout Manager padro de um JFrame.

Professor Jos Ricardo Ferreira Cardoso

20

Introduo Programao Orientada a Objetos

O cdigo acima resulta na seguinte tela:

FlowLayout: Esse Layout Manager arranja os componentes da esquerda para


direita e quando o tamanho horizontal no suficiente ele pula para a prxima linha. O
FlowLayout no altera o tamanho preferencial dos componentes. O FlowLayout o
Layout Manager padro de um JPanel.

Professor Jos Ricardo Ferreira Cardoso

21

Introduo Programao Orientada a Objetos

O cdigo acima resulta na seguinte tela:

FlowLayout o gerenciador padro de todo JPanel, caso no seja especificado outro. FlowLayout posiciona os componentes
lado-a-lado.

BoxLayout: Esse Layout Manager arranja os componentes de cima para baixo


quebrando linha a cada componente adicionado. O BoxLayout no altera o tamanho
preferencial dos componentes.

Professor Jos Ricardo Ferreira Cardoso

22

Introduo Programao Orientada a Objetos

O cdigo acima resulta na seguinte tela:

GridLayout: Esse Layout Manager divide a rea de um componente de


background em clulas semelhantemente a uma tabela. As clulas possuem o mesmo
tamanho.

Professor Jos Ricardo Ferreira Cardoso

23

Introduo Programao Orientada a Objetos

O cdigo acima resulta na seguinte tela:

Professor Jos Ricardo Ferreira Cardoso

24

Introduo Programao Orientada a Objetos

Professor Jos Ricardo Ferreira Cardoso

25

Introduo Programao Orientada a Objetos


Exerccios Tericos
1. Para que o LayoutManager utilizado?
________________________________________________________________________
________________________________________________________________________
2. Quais so os quatro principais Layout Managers do Java Swing?
________________________________________________________________________
________________________________________________________________________

Qual o Layout Manager padro de um JPanel?


________________________________________________________________________
________________________________________________________________________
3.

Anotaes de Aula
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________

Professor Jos Ricardo Ferreira Cardoso

26

Introduo Programao Orientada a Objetos

Captulo 4
Events, Listeners e Sources
Observao: Captulo baseado na apostila da k19 disponvel em: http://www.k19.com.br/downloads/apostilas/java/k19-k11orientacao-a-objetos-em-java.

Contedo

Events, Listeners e Sources


o ActionListener
o MouseListener
o KeyListener

Events, Listeners e Sources


A principal funo de uma interface grfica de usurio permitir interao entre
usurios e aplicao. Os usurios interagem com uma aplicao clicando em botes,
preenchendo caixas de texto, movimentando o mouse, entre outros. Essas aes dos
usurios disparam eventos que so processados pela aplicao atravs de listeners
(callbacks).
Para criar um listener, devemos implementar a interface correspondente ao tipo de
evento que queremos tratar. Eis algumas das interfaces que devemos implementar
quando queremos criar um listener.
ActionListener: Essa interface deve ser implementada quando desejamos tratar
eventos como por exemplo cliques em botes, seleo de items de um menu ou teclar
enter dentro de uma caixa de texto.

Professor Jos Ricardo Ferreira Cardoso

27

Introduo Programao Orientada a Objetos

MouseListener: Essa interface deve ser implementada quando desejamos tratar


eventos como clique dos botes do mouse.

Professor Jos Ricardo Ferreira Cardoso

28

Introduo Programao Orientada a Objetos

Continua na prxima pgina

Professor Jos Ricardo Ferreira Cardoso

29

Introduo Programao Orientada a Objetos

KeyListener: Essa interface deve ser implementada quando desejamos tratar


eventos de pres-sionar ou soltar teclas do teclado.

Professor Jos Ricardo Ferreira Cardoso

30

Introduo Programao Orientada a Objetos

Professor Jos Ricardo Ferreira Cardoso

31

Introduo Programao Orientada a Objetos


Exerccio Prtico I
Criar um listener para executar quando o usurio clicar em um boto. O primeiro
passo definir uma classe que implemente ActionListener.
O mtodo ActionPerformed() dever ser executado quando algum boto for clicado
pelo usurio. Perceba que este mtodo recebe um referncia de um objeto da classe
ActionEvent que representa o evento que ocorreu. Atravs do objeto que representa o
evento do clique do usurio em algum boto podemos recuperar a fonte do evento que no
caso o prprio boto com o mtodo getSource() e alterar alguma caracterstica da fonte.
O segundo passo associar esse listener aos botes desejados.
Exerccio Prtico 2
1. Crie um projeto no Netbeans chamado login.
2. Crie uma tela de login com caixas de texto e rtulos para o nome de usurio e
senha e um boto para logar.
Redimensione a janela e observe o que ocorre com os elementos e pense o que
determina o comportamento observado.
4. Altere o Layout Manager do painel utilizado na tela de login para GridLayout
adicionando a linha a seguir logo aps a criao do JPanel.
Execute novamente o teste e observe o resultado. Depois tente redimensionar a
tela para observar o comportamento.

Professor Jos Ricardo Ferreira Cardoso

32

Introduo Programao Orientada a Objetos


Exerccios Tericos
1. O que so Listeners?
________________________________________________________________________
________________________________________________________________________
2. Como criar um Listener?
________________________________________________________________________
________________________________________________________________________

Cite 3 interfaces que devemos implementar quando queremos criar um listener?


________________________________________________________________________
________________________________________________________________________
3.

Anotaes de Aula
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________

Professor Jos Ricardo Ferreira Cardoso

33

Introduo Programao Orientada a Objetos

Captulo 5
Ponto de Entrada, Variveis, Estruturas de Deciso e Repetio

Contedo

Ponto de Entrada

Modificador static

Organizao do projeto em pacotes

Criao de Formulrios

Ponto de Entrada Mtodo Main


Para um programa Java executar, necessrio definir um mtodo especial para
ser o ponto de entrada do programa, ou seja, para ser o primeiro mtodo a ser chamado
quando o programa for executado. O mtodo main precisa ser public, static, void e
receber um array de Strings como argumento.
Sua assinatura pode variar da seguinte forma:

Um mtodo ou atributo static (estatico) um mtodo/atributo de classe e para


acess-lo no necessrio que seja por meio de um objeto criado.
Exerccio Prtico 1
1.

Crie um novo projeto no Netbeans com o nome de sorteio.

2.

Clique com o boto auxiliar do mouse (geralmente boto direito do mouse) sobre a
pasta pacotes de cdigo fonte, v em novo e em seguida clique em outros.

3.

Na tela que aparece clique sobre a categoria Java e em seguida clique sobre o tipo
de arquivo pacote Java.

Professor Jos Ricardo Ferreira Cardoso

34

Introduo Programao Orientada a Objetos

Clique sobre o boto Prximo.


Na Tela seguinte de o nome view e clique em Finalizar.

Professor Jos Ricardo Ferreira Cardoso

35

Introduo Programao Orientada a Objetos

O que voc acabou de fazer foi a criao de um projeto e aps isto voc criou um
pacote para organizar os arquivos de seu projeto. muito importante que voc mantenha
seu projeto organizado para facilitar as alteraes de cdigo e a manuteno do software
que voc est desenvolvendo.
Exerccio de Fixao
Crie um pacote em Pacotes de Cdigo Fonte com o nome de logica.
Exerccio Prtico 2
Agora vamos criar um formulrio utilizando a ferramenta disponibilizada pelo
Netbeans para a criao de formulrios de forma rpida e simples.
1.

Clique com o boto auxiliar do mouse sobre o pacote view que acabamos de criar,
v em novo e depois em outros.

2.

Na tela que aparece clique sobre a categoria Forms GUI Swing e em tipo de
arquivo clique em Form JFrame.

Professor Jos Ricardo Ferreira Cardoso

36

Introduo Programao Orientada a Objetos

3.

Clique sobre o boto Prximo.

4.

Na tela que aparece de o nome de FSorteio e clique sobre o boto Finalizar.

Professor Jos Ricardo Ferreira Cardoso

37

Introduo Programao Orientada a Objetos

Aps clicar sobre o boto Finalizar, aparecer uma tela JFrame sem nenhum
componente.
No canto direito de sua tela voc dever ter uma paleta de componentes do
Framework Swing.
5.

Arraste para a tela os componentes Boto (JButton), Label (JLabel) e Listar


(JList) e os posicione e os redimensione conforme a imagem a seguir.

Professor Jos Ricardo Ferreira Cardoso

38

Introduo Programao Orientada a Objetos

Para posicionar os componentes voc poder arrasta-los na tela para o local


desejado e para redimensionar um componente voc pode fazer uso das suas alas de
redimensionamento (os quadradinhos brancos que aparecem na borda do componente ao
selecion-lo).
At o momento ns criamos duas classes Java no projeto, uma classe java est
no pacote sorteio e foi criada automaticamente pelo Netbeans no momento da criao do
projeto, esta a classe Sorteio.java e contm o ponto de entrada de nosso projeto. por
meio desta classe que chamaremos a execuo do objeto criado a partir da classe
FSorteio.java que est no pacote view.
6.

Para finalizar a parte do projeto que est neste captulo, digite dentro do mtodo
main (ponto de entrada) da classe Sorteio.java os seguintes comandos:

Professor Jos Ricardo Ferreira Cardoso

39

Introduo Programao Orientada a Objetos


Perceba que o Tipo identificador da varivel de referncia fs est sublinhado em
vermelho. Isto acontece porque a classe FSorteio.java est em um pacote diferente do
que a classe Sorteio.java se encontra. Para resolver este problema voc dever, dentro
do arquivo onde est a classe Sorteio, realizar a importao da classe FSorteio por meio
da palavra import.
import view.FSorteio;
7.

Aps realizar a importao, execute o projeto.

Professor Jos Ricardo Ferreira Cardoso

40

Introduo Programao Orientada a Objetos


Exerccios Tericos
1. Quando interessante definir um mtodo ou um atributo como static?
________________________________________________________________________
________________________________________________________________________
2. Qual a finalidade da criao de pacotes?
________________________________________________________________________
________________________________________________________________________

Quando devemos utilizar o comando import?


________________________________________________________________________
________________________________________________________________________
3.

Anotaes de Aula
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________

Professor Jos Ricardo Ferreira Cardoso

41

Introduo Programao Orientada a Objetos

Captulo 6
Variveis, Estruturas de Deciso e Repetio

Contedo

Variveis

Operadores Lgicos

Operadores Relacionais

Math.round()

Math.random()

Em um projeto em Java, orientado a objetos, continuamos a fazer uso de tudo o


que aprendemos em lgica de programao como: variveis, operadores lgicos e
operadores relacionais. Porm, alm da utilizao destes mecanismos podemos ainda
fazer uso de outras classes uteis, como a classe Math que possui, dentre outros, dois
mtodos estticos muito importantes para o desenvolvedor; estes mtodos so o mtodo
round() e o mtodo random(). O mtodo round() com o prprio nome sugere, realiza o
arredondamento de um valor real e retorna um valor do tipo real e o mtodo random()
retorna um nmero aleatrio que vai de 0 (zero) at 1 (um).
Iremos fazer uso destes mecanismos em nosso projeto iniciado no captulo 5.
Exerccio Prtico 1
No projeto sorteio que criamos no captulo 5 voc dever criar uma nova classe no
pacote logica com o nome de CSorteio da seguinte forma:
1. Clique com o boto auxiliar do mouse sobre o pacote logica, em seguida v em
novo e depois clique em Outro.
2. Na tela que aparece clique sobre a categoria Java e em Tipos de arquivo clique
sobre a opo Classe Java. Em seguida clique em Prximo.

Professor Jos Ricardo Ferreira Cardoso

42

Introduo Programao Orientada a Objetos

3. Na tela seguinte de o nome de CSorteio para a classe e clique em Finalizar.

Professor Jos Ricardo Ferreira Cardoso

43

Introduo Programao Orientada a Objetos


Para comear a codificar a parte lgica de nosso projeto, vamos ter de criar
algumas variveis que, por estarem fora dos mtodos, porm, dentro da classe, sero
chamados de atributos.

O primeiro atributo que foi criado foi o atributo numeros que um array (vetor) de
inteiros de 100 posies para simular um tabuleiro de 100 posies.
O segundo atributo criado o atributo numero que ir armazenar um nmero
sorteado.
O terceiro atributo criado o atributo contador que representa a quantidade de
nmeros sorteados. Neste exemplo ele est sendo inicializado com o valor 0 (zero).
Para que o nosso software realize o sorteio de nmeros de 0 (zero) a 99 (noventa e
nove) e no retorne nmeros repetidos classe requisitante, deveremos criar um mtodo
que retorne nmeros inteiros e retorne aleatoriamente um valor sorteado sempre aps a
verificao, se o nmero a ser retornado j foi ou no foi retornado anteriormente.
Para que isto ocorra voc dever criar o mtodo sortear com o seguinte cdigo:

Professor Jos Ricardo Ferreira Cardoso

44

Introduo Programao Orientada a Objetos


Na linha 18 deste cdigo voc pode verificar o incio do mtodo sortear() que
retorna um valor de tipo inteiro. Este mtodo pblico para que ele possa ser acessado
por uma outra classe em qualquer pacote do projeto. Se o mtodo fosse private (privado)
ele poderia ser acessado e seu valor recebido por apenas mtodos da mesma classe.
Na linha 19 feita uma verificao lgica. Neste caso verificamos se j foram
sorteados os 100 nmeros de nosso tabuleiro virtual. Se o valor contido no contador for
menor que 100 ento a operao lgica da estrutura de deciso retorna true (verdadeiro)
e o contedo do if executado.
Na linha 20 ns fazemos uso do mtodo random() da classe Math multiplicado
pelo valor 99 para que seja retornado de forma aleatria nmeros de 0 99. Este
comando est dentro de um outro mtodo, o mtodo round() da classe Math, que tem a
funo de realizar o arredondamento do valor retornado. Para assegurar que o valor
retornado seja um valor inteiro realizada uma converso explicita por meio da palavra
int entre parnteses. O valor obtido por este processo armazenado no atributo
numero, porm este processo est dentro dos colchetes que determinam a posio
de leitura do array numeros. Se o nmero sorteado for uma posio assinalada com o
nmero 1 (um) significa que este nmero j foi sorteado anteriormente e o processo de
sorteio, arredondamento, converso e atribuio dever ser realizado at que no seja
sorteado um nmero que represente uma posio no array numeros marcado com o
nmero 1. Quando for sorteado um nmero que corresponda a uma posio no array que
no contenha o nmero 1 ento o fluxo da estrutura de repetio cessado e
executado o cdigo seguinte.
A linha 22 incrementa 1 ao valor contido no atributo contador.
A linha 23 atribui o nmero 1 posio correspondente ao nmero sorteado no
array numeros.
A linha 27 retorna o valor contido no atributo numero.
Para Pensar e responder
Para que servem as linhas de 24 26?
Exerccio Prtico 2
Para Testar a classe criada, crie um ponto de entrada na prpria classe CSorteio
com o seguinte cdigo:

Professor Jos Ricardo Ferreira Cardoso

45

Introduo Programao Orientada a Objetos

A linha 31 contm o mtodo main que o que torna esta classe executvel.
Na linha 32 criado uma varivel de referncia a um objeto baseado na classe
CSorteio, do tipo CSorteio.
Na linha 35 a varivel cs utilizada tanto para obter o valor do atributo contador
quanto para obter o valor retornado pelo mtodo sortear(). O mtodo println() imprime na
tela de sada do sistema a mensagem e os valores obtidos. O operador + utilizado para
concatenar (juntar) valores. Sempre que utilizamos o operador + junto com uma String
(texto) todos os valores mesmo os numricos so convertidos em String.
Para Pensar e responder
Para que serve o comando for neste cdigo?

Professor Jos Ricardo Ferreira Cardoso

46

Introduo Programao Orientada a Objetos

Captulo 7
Unindo as partes do projeto Sorteio

Contedo

Variveis

Modificador final

Operadores Lgicos

Operadores Relacionais

Referncias

DefaultListModel

Para que nosso projeto realize a funo de sortear nmeros e mostrar aos
participantes de algum jogo de forma agradvel devemos realizar a unio entre as partes
do nosso projeto.
Exerccio Prtico 1
No projeto sorteio, abra a classe FSorteio.java e clique sobre o boto cdigo-fonte.

Professor Jos Ricardo Ferreira Cardoso

47

Introduo Programao Orientada a Objetos

Na linha 21 temos o comando para a criao de uma classe public e que estende a
classe JFrame, ou seja, ela uma classe que realiza a funo de formulrio em nosso
projeto.
Na linha 23 criado um atributo privado e final do tipo CSorteio que a classe que
criamos na parte 6 deste material. A private (privado) um modificador de visibilidade que
indica que o mtodo ou um atributo visvel (pode ser acessado e utilizado) apenas
dentro da prpria classe. O modificador final tem as seguintes especificaes:

Quando usada na definio de uma varivel, significa que a varivel no pode


assumir outro valor, tornando-se uma constante;

quando usada na definio de um mtodo, significa que o mtodo no poder ser


sobrescrito;

quando usada na definio de uma classe, significa que a classe no vai admitir
herana.

Na linha 24 criado um atributo de referncia para o objeto baseado na classe


DefaultListModel com o nome de lista. Esta classe abstrai o conceito de Lista e ser ela a
responsvel por mostrar os ltimos nmeros sorteados no componente JList que
inserimos no formulrio. Este atributo tambm privado e constante.

Professor Jos Ricardo Ferreira Cardoso

48

Introduo Programao Orientada a Objetos


Da linha 27 33 temos o mtodo construtor da classe FSorteio.java. o contedo
deste mtodo que executado quando construmos, por meio do operador new, um
objeto baseado na classe FSorteio, como ocorreu no captulo 5 deste material.
Na linha 28 deste cdigo realizada a chamada ao mtodo initComponents() da
classe FSorteio. Este mtodo responsvel por criar os objetos de formulrio em tempo
de execuo. neste mtodo que, dentre outras coisas, so criados o rtulo, o boto e a
lista.
Na linha 29 chamado o mtodo setExtendedState() herdado da classe JFrame
e definido o valor JFrame.MAXIMIZED_BOTH que faz com que o formulrio seja
maximizado.
Na linha 31 criado um objeto baseado na classe CSorteio e a referncia a este
objeto atribuda ao atributo sorteio.
O mesmo acontece na linha 32 s o objeto criado baseado na classe
DefaultListModel e a sua referncia armazenada no atributo lista.
Antes de darmos sequncia na codificao do projeto, clique sobre o boto projeto.

Professor Jos Ricardo Ferreira Cardoso

49

Introduo Programao Orientada a Objetos


Na tela do formulrio iremos alterar o nome das variveis
que identificam os componentes.
Clique com o boto auxiliar do mouse sobre o boto Sorteio e
escolha a opo Alterar o Nome da Varivel.
Na tela Renomear de o nome de btnSortear.

Faa o mesmo
com

componente

JLabel mas de o nome


de

lblNumero.

novamente

Faa

com

componente Lista e de o nome de lstSorteados.


Agora vamos alterar o texto do boto para Sortear. Para
isto voc deve clicar com o boto auxiliar do mouse sobre o boto e escolhe a opo
Editar Texto. Na tela que aparece escreva a palavra Sortear.
Pronto. Podemos agora partir para a codificao de nosso projeto.
Vamos fazer que quando o usurio clicar sobre o boto Sortear um nmero seja
sorteado pelo objeto sorteio. Este nmero dever aparecer no Label e ser inserido no
topo da Lista. Para que isto acontea, clique com o boto auxiliar do mouse sobre o boto
Sortear, v at eventos em seguida v at Action e em seguida clique sobre o item
actionPerformed.

Professor Jos Ricardo Ferreira Cardoso

50

Introduo Programao Orientada a Objetos

Aps clicar sobre o item actionPerformed voc ser redirecionado para dentro do
mtodo responsvel por executar as aes quando o boto btnSortear for pressionado.
Neste mdodo voc dever inserir o seguinte cdigo.

Na linha 95 criada uma varivel local (local porque est dentro do mtodo)
chamada numero e do tipo inteiro. Esta varivel recebe um valor retornado pelo mtodo
sortear() do objeto referenciado pelo atributo sorteio.

Professor Jos Ricardo Ferreira Cardoso

51

Introduo Programao Orientada a Objetos


Na linha 98 o valor contido na varivel numero acrescido de + 1, porque nosso
tabuleiro real (que utilizado e mostrado ao usurio/usurios) vai do nmero 1 ao 100 e
no do 0 ao 99. Neste momento estamos tratando os dados antes de enviarmos para a
visualizao. Nesta mesma linha o mtodo toString da classe Integer converte
explicitamente o valor inteiro contido dentro dos parnteses para um valor do tipo String
(texto). Aps converter para um valor do tipo texto feito uso do mtodo setText do objeto
lblNumero. Neste momento o valor mostrado no componete Label na tela do programa.
Na linha 100 o contedo do componente Label (lblNumero) pego pelo mtodo
getText e adicionado na posio 0 (topo da lista) ao objeto referenciado pelo atributo lista.
O mtodo do objeto lista utilizado para adicionar o valor o mtodo add.
Na linha 102 o objeto lista adicionado ao componente de tela lista pelo mtodo
setModel da classe JList.
Na linha 104 o mtodo herdado da classe JFrame utilizado para apresentar a
quantidade de nmeros sorteados na barra de ttulo do formulrio.
Para Pensar e Responder
O que acontece na linha 97?

Professor Jos Ricardo Ferreira Cardoso

52

Introduo Programao Orientada a Objetos

Referncias
COSTA, Lus C. M. Java Avanado. Rio de Janeiro: Cincia Moderna. 2006.
DEITEL, Harvey; DEITEL, Paul. Java Como Programar. 6 ed. So Paulo: Prentice-Hall,
2010.
GONALVES, Edson. Dominando Eclipse - Tudo que o Desenvolvedor Java Precisa
para Criar Aplicativos para Desktop. Rio de Janeiro: Cincia Moderna. 2006.
HORSTMANN, Cay S.; CORNELL, Gary. Core Java 2: Fundamentos. vol 1. 7 ed. Rio de
Janeiro: Alta Books, 2005.
K19.

Programao

Orientada

Objetos.

Disponvel

em:

<http://www.k19.com.br/downloads/apostilas/java/k19-k11-orientacao-a-objetos-em-java>.
Acessado em 15/01/2015.
KOLLING, Michael; Barnes, David J. Programao Orientada Objetos com Java.
Prentice Hall. 2009.
NetBeans. Tutorial para Incio Rpido do Java do NetBeans IDE disponvel em:
http://netbeans.org/kb/docs/java/quickstart_pt_BR.html. Acessado em 10/01/2015.

Professor Jos Ricardo Ferreira Cardoso

53

Você também pode gostar