Sei sulla pagina 1di 69

SERVIO NACIONAL DE APRENDIZAGEM COMERCIAL

SENAC - RIO GRANDE DO SUL

LINGUAGEM JAVA

Porto Alegre, 2007

LINGUAGEM JAVA
1 Edio

Elaborao e Edio
SENAC - Rio Grande do Sul
Documento produzido para uso interno do
SENAC - Rio Grande do Sul

SENAC.RS - Departamento Regional no Rio Grande do Sul


Linguagem Java
1 edio
Porto Alegre: SENAC Informtica / RS, 2007.
69 pp.

Sumrio
Introduo ao Java_______________________________________________________________________________7
J2SE ________________________________________________________________________________________7
J2ME ________________________________________________________________________________________7
J2EE ________________________________________________________________________________________7
Principais Caractersticas_______________________________________________________________________7
A Plataforma Java _______________________________________________________________________________7
Java Runtime Environment (JRE) ________________________________________________________________7
Java Virtual Machine (JVM) _____________________________________________________________________7
Java Application Program Interface ______________________________________________________________8
Java Developer Kit (Java SDK) __________________________________________________________________8
Palavras Reservadas _________________________________________________________________________8
Unicode____________________________________________________________________________________8
Estrutura de um programa em Java ______________________________________________________________9
Convenes __________________________________________________________________________________9
Pacotes _____________________________________________________________________________________10
Tipos Primitivos de Dados _____________________________________________________________________10
Tipos Inteiros ______________________________________________________________________________10
byte ______________________________________________________________________________________11
short _____________________________________________________________________________________11
int _______________________________________________________________________________________11
long ______________________________________________________________________________________11
Tipos Ponto Flutuante (Real) ___________________________________________________________________11
float ______________________________________________________________________________________11
double ____________________________________________________________________________________11
char ______________________________________________________________________________________11
Tipo Lgico _________________________________________________________________________________12
boolean ___________________________________________________________________________________12
Variveis ____________________________________________________________________________________12
Operador de Atribuio________________________________________________________________________12
Operadores Aritmticos _______________________________________________________________________13
Operadores de atribuio compostos____________________________________________________________13
Operadores de Incremento e decremento ________________________________________________________13
Operadores Relacionais _______________________________________________________________________14
Operadores Lgicos __________________________________________________________________________15
Tabela Verdade do Operador Lgico (&&) ________________________________________________________15
Tabela Verdade do Operador Lgico (||) _________________________________________________________15
Tabela Verdade do Operador Lgico (^) _________________________________________________________15
Tabela Verdade do Operador Lgico (!) __________________________________________________________16
Estruturas de Controle___________________________________________________________________________16
Estrutura condicional if________________________________________________________________________16
Estrutura de seleo switch ____________________________________________________________________17
Estruturas de Repetio _______________________________________________________________________18
Estrutura while _____________________________________________________________________________18
Estrutura do _______________________________________________________________________________18
Estrutura de Repetio for ____________________________________________________________________18
Arrays ____________________________________________________________________________________19
Programao Orientada a Objeto __________________________________________________________________20
Classes _____________________________________________________________________________________20
Mtodos Construtores ________________________________________________________________________21
Objetos _____________________________________________________________________________________21

Modificadores _______________________________________________________________________________21
Mtodos ____________________________________________________________________________________21
Herana_____________________________________________________________________________________22
Classes abstratas ____________________________________________________________________________23
Interface ____________________________________________________________________________________23
Polimorfismo ________________________________________________________________________________24
Tratamento de Excees (Exceptions) ___________________________________________________________24
Excees Verificadas ________________________________________________________________________25
Entrada e sada ______________________________________________________________________________25
Arquivos Binrios ____________________________________________________________________________25
InputStream _________________________________________________________________________________25
Principais Mtodos __________________________________________________________________________26
FileInputStream ______________________________________________________________________________26
Principais Construtores_______________________________________________________________________26
Principais Mtodos __________________________________________________________________________26
ObjectInputStream____________________________________________________________________________26
Principais Construtores_______________________________________________________________________26
Principais Mtodos __________________________________________________________________________27
BufferedInputStream __________________________________________________________________________27
Principais Construtores_______________________________________________________________________27
Principais Mtodos __________________________________________________________________________27
DataInputStream _____________________________________________________________________________27
Principais Construtores_______________________________________________________________________27
Principais Mtodos __________________________________________________________________________27
OutputStream________________________________________________________________________________28
Principais Mtodos __________________________________________________________________________28
FileOutputStream_____________________________________________________________________________28
Principais Construtores_______________________________________________________________________28
Principais Mtodos __________________________________________________________________________28
ObjectOutputStream __________________________________________________________________________29
Principais Construtores_______________________________________________________________________29
Principais Mtodos __________________________________________________________________________29
BufferedOutputStream ________________________________________________________________________29
Principais Construtores_______________________________________________________________________29
Principais Mtodos __________________________________________________________________________29
DataOutputStream ____________________________________________________________________________29
Principais Construtores_______________________________________________________________________29
Principais Mtodos __________________________________________________________________________30
Arquivos Texto _________________________________________________________________________________30
Reader______________________________________________________________________________________30
Principais Mtodos __________________________________________________________________________30
BufferedReader_____________________________________________________________________________30
Principais Construtores_______________________________________________________________________30
Principais Mtodos __________________________________________________________________________31
LineNumberReader ___________________________________________________________________________31
Principais Construtores_______________________________________________________________________31
Principais Mtodos __________________________________________________________________________31
InputStreamReader ___________________________________________________________________________31
Principais Construtores_______________________________________________________________________31
Principais Mtodos __________________________________________________________________________32
Principais Construtores_______________________________________________________________________32
Principais Mtodos __________________________________________________________________________32
Writer ______________________________________________________________________________________32
Principais Mtodos __________________________________________________________________________32
BufferedWriter _______________________________________________________________________________33
Principais Construtores_______________________________________________________________________33

Principais Mtodos __________________________________________________________________________33


OutputStreamWriter __________________________________________________________________________33
Principais Construtores_______________________________________________________________________33
Principais Mtodos __________________________________________________________________________33
FileWriter ___________________________________________________________________________________34
Principais Construtores_______________________________________________________________________34
PrintWriter __________________________________________________________________________________34
Principais Construtores_______________________________________________________________________34
Principais Mtodos __________________________________________________________________________34
Classe de Entrada e Sada________________________________________________________________________34
RandomAccessFile ___________________________________________________________________________34
Principais Construtores_______________________________________________________________________34
Principais Mtodos __________________________________________________________________________35
Interface Grfica ________________________________________________________________________________36
Swing ______________________________________________________________________________________36
Tabela 1.1 Classes AWT e Swing ______________________________________________________________36
Componentes Visuais ___________________________________________________________________________37
JComponent_________________________________________________________________________________37
Principais Mtodos __________________________________________________________________________37
JFrame _____________________________________________________________________________________37
Principais Construtores_______________________________________________________________________37
Principais Mtodos __________________________________________________________________________37
JPanel ______________________________________________________________________________________38
Principais Construtores_______________________________________________________________________38
Principais Mtodos __________________________________________________________________________38
JLabel ______________________________________________________________________________________39
Principais Construtores_______________________________________________________________________39
Principais Mtodos __________________________________________________________________________39
JButton _____________________________________________________________________________________40
Principais Construtores_______________________________________________________________________40
Principais Mtodos __________________________________________________________________________40
JToggleButton _______________________________________________________________________________41
Principais Construtores_______________________________________________________________________41
Principais Mtodos __________________________________________________________________________42
JCheckBox __________________________________________________________________________________42
Principais Construtores_______________________________________________________________________42
Principais Mtodos __________________________________________________________________________43
JRadioButton ________________________________________________________________________________43
Principais Construtores_______________________________________________________________________43
Principais Mtodos __________________________________________________________________________44
JComboBox _________________________________________________________________________________44
Principais assinaturas: _______________________________________________________________________45
Principais Mtodos __________________________________________________________________________45
JList _______________________________________________________________________________________45
Principais Construtores_______________________________________________________________________46
Principais Mtodos __________________________________________________________________________46
JTextField ___________________________________________________________________________________46
Principais Construtores_______________________________________________________________________47
Principais Mtodos __________________________________________________________________________47
JOptionPane_________________________________________________________________________________47
Principais Construtores_______________________________________________________________________47
JTextArea ___________________________________________________________________________________49
Principais Construtores_______________________________________________________________________49
Principais Mtodos __________________________________________________________________________49
JTabbedPane ________________________________________________________________________________50
Principais Construtores_______________________________________________________________________50
Principais Mtodos __________________________________________________________________________50

MenuBar, Jmenu e JMenuItem __________________________________________________________________51


Principais Construtores_______________________________________________________________________51
Principais Mtodos __________________________________________________________________________51
JTable ______________________________________________________________________________________52
Principais Construtores_______________________________________________________________________52
JFileChooser ________________________________________________________________________________53
Principais Construtores_______________________________________________________________________53
Principais Mtodos __________________________________________________________________________53
JInternalFrame _____________________________________________________________________________54
Principais Construtores_______________________________________________________________________54
Principais Mtodos __________________________________________________________________________54
Layout ________________________________________________________________________________________55
Gerenciadores de Layout ______________________________________________________________________55
FlowLayout__________________________________________________________________________________55
Principais Construtores_______________________________________________________________________55
GridLayout __________________________________________________________________________________56
Principais Construtores_______________________________________________________________________56
BorderLayout ________________________________________________________________________________57
Eventos _______________________________________________________________________________________58
ActionEvent _________________________________________________________________________________58
ItemEvent ___________________________________________________________________________________59
TextEvent ___________________________________________________________________________________59
FocusEvent _________________________________________________________________________________59
KeyEvent ___________________________________________________________________________________60
MouseEvent _________________________________________________________________________________60
WindowEvent ________________________________________________________________________________61
Classes Adapter______________________________________________________________________________61
Programao Multitarefa em Java _________________________________________________________________62
Threads_____________________________________________________________________________________62
A classe Thread ______________________________________________________________________________62
Principais Mtodos __________________________________________________________________________62
Criando Threads em Java ______________________________________________________________________62
Criando Theads implementando Runnamble ______________________________________________________63
Estados de uma Thread _______________________________________________________________________64
Novo _____________________________________________________________________________________64
Executvel ________________________________________________________________________________64
Execuo _________________________________________________________________________________64
Espera/bloqueio/suspenso ___________________________________________________________________64
Inativo ____________________________________________________________________________________64
Impedindo a execuo de uma thread ___________________________________________________________64
Mtodo sleep() _____________________________________________________________________________64
Mtodo yeld() ______________________________________________________________________________65
Mtodo setPriority()__________________________________________________________________________65
O mtodo join() _____________________________________________________________________________65
Sincronizao ______________________________________________________________________________65
Interao com as Threads _____________________________________________________________________66
Mtodo Wait() ______________________________________________________________________________66
Mtodo Notify() _____________________________________________________________________________66
Mtodo NotifyAll() ___________________________________________________________________________66
Colees____________________________________________________________________________________67
List ______________________________________________________________________________________67
Principais Mtodos __________________________________________________________________________67
Set_______________________________________________________________________________________68
Map ______________________________________________________________________________________68

I NTRODUO

AO

J AVA

Ja va uma ling uag em po der osa , mo de rn a , u tiliza da par a des en vo lvimen to de


a plica es p ara compu tador es d esktops , main frames , d ispos itivos m ve is como
ce lu la res ou PD As , ap lica es p ara a web d e peq ue no , m d io e gra nde p or te , ro bs ,
e n tre ou tras .
E l a f oi dese n vo l vi da p ar a s er i nd epe nde n te de p la t a fo r ma , ou s e ja , po de mos u t il iza r o
Ja va c om o Wind ows, L i nu x, Un ix, Solar is , bas ta ndo to so me n te termos ins ta lad o a
Mq uina Vir tu a l Ja va . (J VM) par a o s is te ma o per acional corr espo nd en te .
O J a va dividido e m trs par tes b sic as :

J2SE
J a v a 2 S ta nda r d E di t i on a p ar te pr inc i pa l . N e la e s to c on t id as to das as A P I s
n ecess rio p ara o dese n vo l vime nto de so ftwa re p ara co mp u tad ores D esk top.

J2ME
No Ja va 2 Micr o Ed ition es to co n tidas as c lasses , ro tin as nec essr io pa ra o
d esen volvimen to de ap lica tivos m ve is , ta is co mo ce lu la res e PD As .

J2EE
O J a va 2 En t er pr is e Ed i t ion um c o nj un to de espec ifica es p ara o dese n volvime n to
d esde pequ enas ap lica es web a t gr and e sites de ac esso conc orr ido .

P RINCIPAIS C ARACTERSTICAS

Or i en ta da a ob je tos
C digo fo nte in terpr e ta do e c omp ilad o
D is tr ibu da
D inmica
Alta p or tabilid ade
Alta p er formanc e
Ro bus ta
Multitarefa
Se gura
A r q ui t e tur a n eu tr a
P or t ve l

A P LATAFORMA J AVA
A p la ta forma Ja va d i vid ida em duas p ar tes : a J ava Vir tua l Mach in e (J VM) , e a
Ap plica tio n Pro gra m In ter fac e (Ja va API)

J AVA R UNTIME E NVIRONMENT (JRE)


O J R E um ap lic a ti vo que ins ta la o am bie n te b s ic o , o u s e ja , a A P I e a J VM no
co mp u tad or q ue quere mos e xecu tar a plica tivos d esenvo l vidos em J a va .

J AVA V IRTUAL M ACHINE (JVM)


A Ja va Virtu al Mach in e uma ca ma da de so ftwa re , in ter med i ria , en tre o s istema
O per aci ona l e o ap l ic a t i vo J a va . Es ta r es po ns ve l p el o a mb ie n te d e e x ecu o dos
p rogr amas cr ia dos e m Ja va .
7

Se u pr inc ip al compon en te o co ma ndo ja va q ue nos poss ib i lita a e xecu o de um


a pl ic a t i vo d es en v ol v id o nes t a l in gua ge m .
Exemplo:
C: \Pasta> j a va N om eDaC lass e Pr inc ip al

J AVA A PPLICATION P ROGRAM I NTERFACE


A API d o Ja va uma gra nde co le o de compone n tes de so ftw are re u tiliz ve is,
p ron tos par a uso , o rga niz ados em pac otes .
Exemplos:

javax.swing
P ac o te p ar a dese n vo lv e r i n ter faces gr f icas d e usu r io ( gu i s) .

java.io
P ac o te p ar a dese n vo lv e r ap l ic a t iv os c om e nt r a da e s a d a

J AVA D EVELOPER K IT (J AVA SDK)


O J a va SDK u m s u te de fer r am en t as c om p le ta p ar a dese n vo lv i m en to d e s o f tw ar es
e m J a va . S e u p r i nc ip al c o mand o o j a vac , q ue per mi t e c omp i lar mos o n os s o c d ig o
f o n te ja va .
Exemplo:
C:\Pas ta> javac No meD o Ar q u i vo .j a va

P AL AV R AS R E S E R V AD AS
As p ala vras-c ha ve em J a va s o as s egu in tes :
abstract

continue

for

new

assert

default

goto

package

boolean

do

if

private

break

double

implements

protected

byte

else

import

public

case

enum

instanceof

return

catch

extends

int

short

char

final

interface

static

class

finally

long

strictfp

const

float

native

super

Observao: true, false e null, so palavras reservadas. No podemos nomear


componentes de software com palavras reservadas.
UNICODE
Par a su portar os d i vers os id iomas qu e a p la ta for ma J a va pode ser e xecu tada , es ta
u t i liz a o pa dr o u nico de em v ez de A SC II , p o is es te s up or ta p r a t icam ente t od os os
i d io mas a tu ais .

E STRUTURA DE UM PROGRAMA EM J AVA


A ling uage m J a va tra ba lh a de for ma cas e s ens itive , ou se ja , d i fer enc ia le tras
maisculas de minsculas .
Blocos de ins tr u es s o inser idos en tr e {}
P ar a fi na liza r c ad a i ns tr u o uti li z a mos ;
Na ma ior ia d as vezes cr ia mos uma c lasse p or ar qu ivo;
U m prog r am a func io na l e m J a va de v e t er n o m n im o u ma c l as s e p b l ica , d e mes mo
n ome d o a rqu ivo .java , o nde n es ta con ter um m to do c ha ma do pub lic s ta tic vo id
m a in( Str ing [] args)
// Arquivo PrimeiroPrograma.java
public class PrimeiroPrograma() {
public static void main(String[] args) {
// o cdigo fica aqui!
}
}

C ONVENES
Par a melhor le gibilidad e , ap odemos a do tar a lg umas co n ven es :
No mes de c lasses in ic ia m com le tr a m ai scu la
Exemplos:
a) MinhaClasse
b) Pessoa
M to dos e a tr i bu tos in ic ia m c om le tra minscu la . Se fo r pa la vr a co mp os ta , a p rime ira
p al a vra s er m insc ula e as d ema is in ici am co m m ai scu la .

Exemplos:
a) insere;
b) calculaProduto
Co ns tan tes d e ve m s er to das as le tr as e m ma isc ulas .
Ma is de uma p ala vra, u tiliz amos o c arac ter e _ .
Exemplos:
a)

VALOR

b)

TOTAL_VALOR

De vemos utiliza r en den taes c om 2 ou 4 esp aos


Exemplo:
public class Pessoa {
private int cpf;
public int getCpf() {
return this.cpf;
}
}

P ACOTES
Pac o te u ma
r elaciona das .

e ntida de

q ue

or gan iza

um

c on ju n to

de

c lasses

in ter faces

Par a e vitar con fuso com n ome d e c lasses id n ticas n os pr ogra mas e m ja va ,
u tiliz amos o co ma ndo pack ag e , q ue d e fine u m paco te. Cad a paco te c orresp ond e a uma
p as ta ( W ind ow s ) , o u d ir e tr io ( Li nu x ) no s is te ma d e ar qu i vos .
O pac k a ge d e ve , o br iga t or iam en te , s er o p r im e ir o c o ma ndo do a r q ui v o .
P ar a qu e poss am os u ti l iz - l o a pa r t ir de o u tr o pac o te , u t i liz am os a ins t r u o i m por t .
A S un , c r ia dor a do J a v a , r ec om en da n om es d e dom n io In te r n e t i n ver t id os pa ra
p r e f i xar a d e fi ni o de paco t es .
package meupacote; // define o pacote meuopacote //
import java.io.*; // importa todas as classes necessrias do pacote java.io
import java.lang.StringBuffer; // s importa a classe StringBuffer
public class PrimeiroPrograma() {
public static void main(String[] args) {
// o cdigo fica aqui!
}
}

T IPOS P RIMITIVOS DE D ADOS


Os tip os primitivos d e d ados em Ja va so os se gu in tes

TIPOS INTEIROS
Re pres en ta m n me ros sem casas decimais .
Os tip os inte ir os em Ja va po de m ser :

10

BYTE

I n t ei r o d e ta ma nho 8 b i ts q ue var ia de - 2 at 2 - 1 . ( - 1 28 127 )


SHORT

15

15

I n t ei r o d e ta ma nho 16 b i ts q ue va r i a de 2 a t 2 - 1 . ( - 32 .7 68 3 2 .76 7)
INT

31

31

I n t ei r o d e ta ma nho 32 b i ts q ue va r i a de 2 a t 2 - 1 . ( - 2.14 7 .48 3.6 48 2 .147 . 483 . 647 )


LONG

63

63

In teiro de ta ma nho 6 4 b i ts qu e va ria de 2 a t 2 - 1 . (-9 .22 3.372 .036 .854 .7 75 .8 08


9 .223 .372 .0 36 .8 54 .7 75 .809 ) .

T IPOS P ONTO F LUTUANTE (R EAL )


Re pres en ta os n meros c om casas dec imais .
Os tipos Ponto flutuante obedecem ao padro IEEE 754.
F L O AT

P o n to fl u tua n te s im ples de ta man ho 3 2 b i ts


a) 7.9
b) 456.87
DOUBLE

P o n to fl u tua n te d e prec is o du pl a d e ta man ho 6 4 b i ts.


Exemplos:
a) 354335.65678765
b) 65.9998764367676
C H AR

Re pres en ta um n ico car ac ter e u nic ode ou u m n me ro .


De vemos u tiliz - lo en tr e aps tr ofos . Po de mos tamb m ar maze nar va lor es d e 0
6 553 5 .
Exemplos:
a) a
b) d
c) 654

11

T IPO L GICO
B O O L E AN

In formao q ue p ode ass umir somen te do is es tados : tr ue o u fa lse .


Exemplos:
a) true
b) false

V ARIVEIS
Par a que p ossa mos a rmaz ena r da dos na me mr ia do co mpu tado r u tiliza mos as
v a r i ve is .
As var i veis d e ve m poss uir um n ome , um tipo de d ado e um c onte do .
Em J a va po de mos , jun to com dec lar ao , in ic ia liz armos as var ive is .
Exemplo de declarao de variveis em Java
{
int Codigo;
String nome = Jorge M.;
float altura = 1.89;
char c = H;
boolean v = true;
}

O PERADOR DE A TRIBUIO
Na ling ua ge m Ja va, utiliza mos o o per ador = p ara a tr ib ui o .
Exemplo:
a) int x; // declara x do tipo inteiro
b) x = 9; // atribui o valor 9 a varivel x

12

O PERADORES A RITMTICOS
Operador

Significado

Exemplo

Resultado

Soma dois nmeros

5.8 + 7.3

13.1

Subtrai o segundo nmero do primeiro

9-2

Multiplica dois nmeros

4*-8

-32

Divide o primeiro nmero pelo segundo

7/2

3,5

Obtm o resto da diviso de dois nmeros

13 % 4

O PERADORES DE ATRIBUIO COMPOSTOS


Po demos utiliza r es tes o per adores par a rea l izar tare fas c omuns d e a tr ib ui o
Operador

Significado

Exemplo

Equivalente

+=

Soma e atribui

x += 5

x = x+ 5

-=

Subtrai e atribui

x -= 2

x = x- 2

*=

Multiplica e atribui

x *= 3

x = x* 3

/=

Divide e atribui

x /= 9

x = x/ 9

%=

Resto e atribui

x %= 7

x = x% 7

O PERADORES DE I NCREMENTO E DECREMENTO


Operador

Significado

Exemplo

Exemplo

++

Incrementa

x++

++x

--

Decrementa

x --

--x

Os oper ado res incremen tam o u d ecre men ta m u ma var i vel num ric a .
Exemplos:
a)
int x=1;
x++;
println(x); // escreve 2.
b)
int a=7;
println(a--); // primeiro escreve 7 depois decrementa
println(a); // escreve 6.

13

O PERADORES R ELACIONAIS
O per ador es R elaciona is s o u tiliza dos pa ra co mp ar armos do is oper an dos com o
o bje tivo de sa ber s e uma se ntena ver dad eira o u falsa
O pe rad or
==

R e su lt ad o ve r d a de ir o q ua nd o
Ambos o per and os so igu ais

>

O prime ir o ma ior que o seg undo

<

O prime ir o me nor q ue o seg undo

>=

O pri me ir o ma ior ou i gu al ao s eg und o

<=

O prime ir o me nor o u igu al ao se gun do

!=

Os oper and os so dife ren tes

Exemplos:
a) 5 == 7 // Falso
b) 4 < 4

// Falso

c) 15 > 23 // Falso
d)

-2 >= -2

// Verdadeiro

e)

3 <= 6 // Verdadeiro

f)

7!= -7 // Verdadeiro

Exemplos:
a)
public class OperadoresAritmeticos {
public static void main (String args[]) {
int a = 5;
int b = 2;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("-b = " + (-b));
System.out.println("(float) a / b = " + ((float)a / b));
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println("a % b = " + (a % b));
System.out.println("a++ = " + (a++));
System.out.println("--b = " + (--b));
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}

14

b)
public class OperadoresRelacionais {
public static void main (String args[]) {
int a = 25;
int b = 11;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("a < b -> " + (a < b));
System.out.println("a > b -> " + (a > b));
System.out.println("a <= b -> " + (a <= b));
System.out.println("a >= b -> " + (a >= b));
System.out.println("a == b -> " + (a == b));
System.out.println("a != b -> " + (a != b));
}
}

O PERADORES L GICOS
O per ador es L g icos s o u tiliz ad os , fre qe n te men te , co m o pera dor es re lac io na is ou
va lo res lgicos p ara de fin ir mos o flu xo de um pro gra ma .
Operador
&&

Resultado verdadeiro quando

Operandos

Ambos o per and os so ver da de iros .

||

Q ua lqu er um dos o pera ndos ver dad eir o .

U m, e ap en as u m, dos o per and os verd ade ir o .

I n v er te o va lo r l g ic o d o op era ndo .

T AB E L A V E R D AD E D O O P E R AD O R L G I C O (&&)
Primeiro Operando

Operador

Segundo Operando

Resultado

Verdadeiro

&&

Verdadeiro

Verdadeiro

Verdadeiro

&&

Falso

Falso

Falso

&&

Falso

Falso

Falso

&&

Verdadeiro

Falso

T AB E L A V E R D AD E D O O P E R AD O R L G I C O (||)
Primeiro Operando

Operador

Segundo Operando

Resultado

Verdadeiro

||

Verdadeiro

Verdadeiro

Verdadeiro

||

Falso

Verdadeiro

Falso

||

Falso

Falso

Falso

||

Verdadeiro

Verdadeiro

T AB E L A V E R D AD E D O O P E R AD O R L G I C O (^)
Primeiro Operando

Operador

Segundo Operando

Resultado

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Falso

Verdadeiro

Falso

Falso

Falso

Falso

Verdadeiro

Verdadeiro

15

T AB E L A V E R D AD E D O O P E R AD O R L G I C O (!)
Operador

Operando

Resultado

Verdadeiro

Falso

Falso

Verdadeiro

Exemplos:
a) Falso && Verdadeiro

// Falso

b) Verdadeiro || Falso

// Verdadeiro

c) Verdadeiro ^ Verdadeiro

// Falso

d) ! Falso // Verdadeiro
e) 2 < 9 && 7 < 3 //Falso
f) 7 = 3 || 8 9 = -1

// Verdadeiro

g) 6!= 7 ^ 9 <= 8 // Falso


h) ! ( 5 > 3)

E STRUTURAS

DE

// Falso

C ONTROLE

A s es tr u turas de c o n tr o le s o u t i li z ad as pa r a dec id ir o f l u xo do a lg or i tmo .

E STRUTURA C ONDICIONAL IF
U tiliza da pa ra d ecidir se e xecu ta um o u ma is co ma ndos a pa rtir d e u ma con di o
// Se a condio for verdadeira executa Comandonico
if (condio for verdadeira)
Comandonico;
// Se a condio for verdadeira executa Comando1, depois Comando2, e por ltimo, comando3.
if (condio for verdadeira) {
Comando1;
Comando2;
Comando3;
}
// Se a condio for verdadeira executa Comando1, Seno executar Comando2;
if (condio for verdadeira)
Comando1;
else
Comando2;
// Se a condio for verdadeira executa Comando1, depois Comando2, Seno Executa Comandos
3,4,5.
if (condio for verdadeira) {
Comando1;
Comando2;
}
else
{
Comando3;
Comando4;
Comando5;
}

16

Exemplos:
if (7 > 6) {
System.out.println(Escreva 7 maior do que 6);
}
if (1 == 8) {
System.out.println(Escreva Isto no ser exibido;
System.out.println(Escreva Porque 1 diferente de 8;
}
else
{
System.out.println(Escreva 1 no igual a 8);
}

E STRUTURA DE SELEO SWITCH


A es tru tura switc h se lec io na a tra vs de uma var i vel a o p o e xa ta corres pon den te ,
como s e fosse um menu.
S pod emos us ar o sw itch co m va ri ve is do tip o sh or t , in t , ou c har .
A i ns tr u o b r eak n ec es s r i a p ar a que s a ia i med ia ta me n te d o s w i tc h .
// De acordo c om v se lec io na um c omand o p ara e xecu tar .
int v;
switch(v) {
case 1: comando1; break;
case 2: comado2; break;
case 4: comando3; break;
default: comando5;
}
a)
public class TestaSwitch {
public static void main(String[] args) {
int v;
v = 2;
switch(v) {
case 1: System.out.println(" um" ); break;
case 2: System.out.println(" dois" ); break;
case 3: System.out.println(" trs" ); break
default: System.out.println(" nenhum " );
}
}
}

17

E STRUTURAS DE R EPETIO
ESTRUTURA WHILE
En qua n to a co nd io fo r verd ade ir a rep e te o lao .
O t es te exec u tad o no in c io .
while (condio for verdadeira)
Comando;
while (condio for verdadeira) {
Comando1;
Comando2;
Comando3
}

ESTRUTURA DO
En qua n to a co nd io fo r verd ade ir a rep e te o lao . O tes te e xecu tado no fin al.
do {
Comando1;
Comando2
Comando3
Comando4;
while (condio ser verdadeira);

// Repete enquanto a condico for verdadeira.

ESTRUTURA DE REPETIO FOR


A es tru tura fo r rep e te uma quan tid ade pr -de termina da d e vezes es pec ificad a pe la
co nd io :
Exemplos:
a)
for (inicializao;condico;incremento)
Comandonico;
b)
for (inicializao;condico;incremento) {
Comando1;
Comando2;
Comando3;
}
c)
int x;
for (x=1;x<=10;x++)
System.out.println(x);
d)
int x;
for (x=0;x<=60;x++) {
System.out.println(Valor de x:);
System.out.println(x);
}
18

A R R AY S
A r r a ys s o o b je tos qu e a r maz en am d i ver s as v ar i v eis de um mes mo t i po . O s ar r a ys
s o r e f er enc ia dos p or u m , o u ma is , n dic es .
E s tes n dic es , en tre c o lch e tes , in dic am a pos i o de c a da e le me n to .
O prime ir o n dic e de um arr a y s empre c omea c om ze ro ;
De vemos ins tanc i- lo co m o se u ta man ho an tes da u tiliza o
Exemplos de utilizao de arrays:
a)
public class b {
public static void main(String[] args) {
int x;
int v[]; // declara o vetor
v = new int[3]; // cria o objeto
v[0] = 18; // atribui valores
v[1] = 03;
v[2] = 80;
for (x=0;x<3;x++)
System.out.println(v[x]);
}
}
b)
public class b {
public static void main(String[] args) {
int x,y;
int m[][];
m = new int[3][2];
m[0][0] = 7;
m[0][1] = 8;
m[1][0] = 3;
m[1][1] = 6;
m[2][0] = 10;
m[2][1] = 12;
for (x=0;x<3;x++) {
for (y=0;y<2;y++) {
System.out.println(m[x][y]);
}
}
}
}

19

P ROGRAMAO O RIENTADA

O BJETO

C LASSES
C lasses em J a va s o cr ia das d a se gu in te fo rma :
class NomeDaClasse {
// aqui ficam os atributos
// e os mtodos
}
Exemplo:
class NomeDaClasse {
public class Teste {
// atributos
private int codigo;
private String nome;
// mtodos
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public int getCodigo() {
return codigo;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return this.nome;
}
public NomeDaClasse() { // mtodo construtor da classe
this.codigo = 0;
this.nome = "";
}
public NomeDaClasse(int v, String p) { // mtodo construtor da classe
this.codigo = v; // inicializa valores
this.nome = p;
}
public static void main(String[] args) {
Teste n = new Teste(1,"Jorge");
System.out.println(n.codigo);
System.out.println(n.nome);je
n.setCodigo(12);
n.setNome("RF");
System.out.println(n.codigo);
System.out.println(n.nome);
}
}

20

M TODOS C ONSTRUTORES
Os m tod os cons tr u tor es de uma classe serve m par a qu e possa mos in icializa rmos u m
o bj e to .
Os m to dos co ns trutor es de u ma c lasse t m a mesma estru tura d e u m m todo
c o mu m , mas n o p os s u in do t ipo d e r e t or no .
Exemplos:
public class Pessoa {
Pessoa { // mtodo construtor da classe Pessoa
x = 1;
// rotinas de inicializao
nome = teste;
}
int x;
String nome;
}

O BJETOS
O bj e tos s o ins t anc ias d e um a c l as s e .
Par a qu e p ossa mos tra ba lh ar co m es tes, faz-s e n ecess r io u tiliz armos o co ma ndo
new .
Exemplos:
a) Pessoa p; // declara o objeto p do tipo classe Pessoa
p = new Pessoa();
b) Pessoa p = new Pessoa(); // Declarao e instanciao na mesma linha.

M ODIFICADORES
Na ling ua ge m Ja va e xis te m d i versos mo difica dor es .
Modificador es de acesso:
Modificadores

Restries

public

sem resstries

private

restringe o uso a somente dentro da classe

protected

dentro da classe e classes filhas

padro

dentro do pacote

O u tros Mod i f ic ad or es :
Modificadores

Significado

final

no poder ser modificado

static

pertencente a classe

abstract

abstrato, no pode ser instanciado

M TODOS
De fin em as o per aes ( mens agens ) qu e pod em s er e xec u tad as em um ob je to .
S o dec lara dos d en tro da c lasse que os co n t m.
D e v e s e mpr e c on t er um t ip o d e r e t or n o .
Par a re torna r um valor, us amos o co ma ndo r eturn .
21

Q uan do n o que remos re torn ar u m va lor , utiliza mos vo id c omo tip o de re torn o .
Exemplo:
class TestaMetodo {
int calculaDobro(int n) { // Retorna um inteiro contendo o dobro
return n+n;
}
void exibeMensagem(String n) { // No h nada a retornar, usamos void
System.out.println("Ola, " + n);
}
public static void main(String[] args) {
TestaMetodo n = new TestaMetodo();
System.out.println(n.calculaDobro(10));
n.exibeMensagem("Teste" );
}
}

H ERANA
He ran a u m mec an ismo da q ua l a c lasse filh a her da os es tados e co mpo rtamen tos
da classe pai.
Par a u tiliza rmos he ran a e m Java faz-se nec essr io a u tiliza o da ins tru o e xtends
se gu ida do n ome da classe ances tra l .
Exemplo:
public class Inicio {
public static void main(String args) {
}
}
class Pessoa {
int codigo;
char sexo;
String nome;
void cadastrar() {
// rotina para cadastrar uma pessoa
}
}
class PessoaFisica extends Pessoa { // herda Atributos e mtodos de Pessoa
String cpf;
String rg;
String ufRg;
}
class PessoaJuridica extends Pessoa {
String cnpj;
String razaoSocial;
}

22

C LASSES ABSTRATAS
U ma c las s e abs tr a ta n o pod e s e r i ns tanci ad a , p ois es t a c o n tm m tod os a bs tr a t os ,
o u se ja , se m imp lemen tao . N o pode mos u tiliza r c lass es a bstra tas d ire tamen te .
De vemos u tiliz ar uma classe filha her dan do des ta e impleme n tan do tod os os seus
m to dos abs tr a tos .
Exemplo:
abstract class Pessoa {
String nome;
abstract void Cadastrar();
public int excluir(){
// rotina p/ excluir
}
}
class PessoaFisica extends Pessoa {
String cpf;
void cadastrar() {
// implementando o mtodo
// abstrato da classe pai
}
}

I NTERFACE
I n t er face u ma es t r u tu r a q ue r ep r ese n ta um a c las s e t o t al me n te a bs tr a t a em J a va .
N o t m a tr ib u tos d e d ados , s omen te c ons ta n tes es t ticas .
T od os s eus m tod os s o abs t r a tos .
Par a u tiliza rmos as in ter fac es de vemos usa r a c lusu la imp l eme n ts , no es quec endo
d e imp le me n tar to dos os s eus m todos abstra tos .
interface Veiculo {
public static final int x = 5;
public abstract void andar();
public abstract void parar();
}
public class Carro implements Veiculo {
String modelo;
public void andar() {
// implementando o mtodo andar ()
}
}
public void parar() {
// implementando o mtodo parar ()
}
}

23

P OLIMORFISMO
No po limorfismo, um o bje to p ode s e compo rtar d e vr ias fo rmas d epe nden do d e sua
ins ta nciao . Pod emos reescr e ve r os m tod os h erd ados da classe pa i de ta l forma qu e
d epe nde ndo do o bje to cr ia do , o m to do re fe ren te a c lass e des te o bje to ser e xec u tad o .
public class Inicio {
public static void main(String[] args) {
Pessoa p = new Pessoa();
p.cadastrar();
p.cadastrar(6);
PessoaFisica pf = new PessoaFisica();
pf.cadastrar();
pf.cadastrar(8);
}
}
class Pessoa {
int codigo;
String Nome;
String Endereco;
void cadastrar() {
System.out.println("cadastrar() da classe Pessoa! ");
}
void cadastrar(int c) {
System.out.println("Cadastrar() codigo "+ c + " da classe Pessoa!");
}
}
class PessoaFisica extends Pessoa {
void cadastrar() {
System.out.println("Mtodo cadastrar() da classe PessoaFisica!");
}
}

T RATAMENTO DE E XCEES (E XCEPTIONS )


O t r a ta mento de er r os nec es s r io par a pod erm os g ar a n ti r u m mn i mo d e s e gur ana
n a e xecu o de u m s is te ma de s o f tw ar e . O J a v a usa e xc e es pa r a man ip ul ar er r os e
o u tr os e ven t os qu e po de m c or r om per a e xecu o n or m a l do f lu xo de u m a pl ic a ti v o .
Exce es p ode m ocorr er en quan to ten ta mos abr ir um arq uivo q ue j n o es t ma is
d isp on ve l , uma divis o por zero , o u u ma co n vers o in v lida . Pa ra nos auxilia r , o Java
c o n ta c o m as es tru tu r as tr y - c a tch e fi na ll y .
try {
// cdigo que pode
// ocorrer um erro
}
catch(ClasseErro obj) {
// se ocorrer um erro do tipo ClasseErro
// o cdigo que est aqui deve ser executado
}
catch(ClasseOutroErro obj){
// Se ocorrer um erro do tipo ClasseOutroErro
// o cdigo que est aqui deve ser executado
}
finally{
// Cdigo que sempre ser executado.
}
24

Principais excees

Significado

Trowable

Superclasse de todas as excees

Exception

Excees em geral

Error

Erro grava

RunTimeException

Erros em tempo de exceo

NullPointerException

Exceo de ponteiro nulo

ArithmeticException

Excees aritmticas

IndexOutOfBoundsException

ndice da String ou array invlido

ArrayStoreException

Atribuio incompatvel com o array

Exemplo
try {
x = x /y;
catch()

E X C E E S V E R I F I C AD AS
Po demos u tiliz ar a c lus ula th rows para in d ica r q ue u m m todo p ode lan ar uma
e xc eo do tipo espec ificad o . Ca be ao pr ogra ma dor tra tar corr etamen te a e xce o o u
p rop ag- la.
Exemplo:
a)

b)

void metodoTeste() throws IOException {


// este cdigo pode gerar um exceo do tipo IOException
}
void maisTeste() throws IOException {

if (ErroArquivo()) {
throw new IOException(); // Lana a exceo IOException

E NTRADA E SADA
O pr inc ipa l p ac o t e r es p ons v el p el a m an ipu la o de e n tr a da e s a da do J a v a o
ja va .io . L e s to con tid as d i ve rsas c lasses pa ra q ue possamos man ipu la r ar qu ivo s
b in r ios e a rqu ivos de te xto (car actere )
As c lasses q ue s o ch amadas de strea ms o per am em n ve l de b yte (b in rio) . E as
c lasses c ha ma das d e Re ade rs /Wr i ters ope ram em nve l d e car ac ter e .
E x i s t e a p os s ib il id ad e d e u t il izarm os fi l tr os d e for ma ta o par a fac il i ta r a m an ip ul a o
o u con vers o de dad os .
Gr an de p ar te dos m todos des tas c lasses ger am e xc ees ve rifica das d o tipo
I O E xc e p ti on , s ig ni f ican do q ue d ev e mos tr a t - l as ou pro pag - las .

A RQUIVOS B INRIOS
Arq uivos b in r ios so man ip ulados co mo se q ncias d e b ytes . Par a en tr ad a de d ados
u t i liz am os a c lass e Inp u t Str ea m e par a a s a d a a O u tpu t S tr eam e s u as des c e nde n tes .

I NPUT S TREAM
Impu tStre am a su perc lass e de to dos os s tr eams de en tr ad a

25

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

close()

Fecha a stream de entrada e libera recursos

void close()

avaliable()

Retorna o nmero de bytes que pode ser lido

int avaliable()

skip()

Pula e descarta x bytes do stream de entrada

long skip(long x)

read()

L o prximo byte da stream de entrada.

int read()

read()

L alguns bytes e armazena em um buffer


definido por b

int read(byte[] b)

read()

L at n bytes e armazena em um array de


bytes

int read(byte[] b, int indice, int tam)

As pr inc ip ais subc lasses de In pu tStre am:

F ILE I NPUT S TREAM


C lasses par a leitura de arq uivos e m b ytes .

P R I N C I P AI S C O N S T R U T O R E S
FileInputStream(File arq ) throws FileNotFoundException
FileInputStream(String arq) throws FileNotFoundException
P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

skip()

Pula e descarta x bytes do stream de entrada

long skip(int x)

read()

L o prximo byte da stream de entrada.

int read()

read()

L at n bytes e e armazena em um array de bytes

int read(byte[] b, int inicio, int tam)

O BJECT I NPUT S TREAM


C lasse para le itu ra de ob je tos se rializa dos.

P R I N C I P AI S C O N S T R U T O R E S
ObjectInputStream(InputStream entrada) throws IOException, StreamCorruptedException
Cr ia um O bjec tIn pu tStr eam

26

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

skipBytes()

Pula e descarta x bytes do stream de entrada

long skip(int x)

read()

L o prximo byte da stream de entrada.

int read()

read()

L at n bytes e e armazena em um array de bytes

int read(byte[] b, int inicio, int tam)

readUTF()

L uma String em UTF.

String readUTF()

B UFFERED I NPUT S TREAM


Classe que implementa uma InputStream bufferizada

P R I N C I P AI S C O N S T R U T O R E S
BufferedInputStream(InputStream imp)
C r ia um Buf f er ed In pu tS t r e am

BufferedinputStream(inputStream imp, int tam)


C r ia um Buf f er ed In pu tS t r e am es pec i f ican do o t ama nh o n a var i v el i n t ta m .

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

skip()

Pula e descarta x bytes do stream de entrada

long skip(long x)

read()

L o prximo byte da stream de entrada.

int read()

read()

L at n bytes e armazena em um array de bytes

int read(byte[] b, int inicio, int tam)

D ATA I NPUT S TREAM


Imp lemen ta a leitura d e tod os os tipos pr imitivos do Ja va .

P R I N C I P AI S C O N S T R U T O R E S
DataInputStream(InputStream imp)
Cr ia um o bj e to D a ta Inp u tStrea m

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

skipBytes()

Pula e descarta x bytes do stream de entrada

int skip(int x)

read()

L alguns bytes da stream de entrada e armazena em um array x

int read(byte[] x)

readShort()

L e retorna um short do InputStream

short readShort()

readInt()

L e retorna um int do InputStream

int readInt()

readBoolean()

L e retorna um boolean do InputStream

boolean readBoolean()

readChar()

L e retorna um char do InputStream

char readChar()

readDouble()

L e retorna um double do InputStream

double readDouble()

readByte()

L e retorna um byte do InputStream

byte readByte()

readLong()

L e retorna um long do InputStream

long readLong()

27

O UTPUT S TREAM
O u tpu tStr ea m a s upe rclasse de todos os s tre ams de sa da

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

close()

Fecha a stream de sada e libera recursos

void close()

flush()

Decarrega a sada esvaziando o buffer

void flush()

write()

Grava um byte na stream de sada.

void write(byte[] b)

write()

Grava n bytes na stream de sada.

int write(byte[] b, int inicio, int quant)

F ILE O UTPUT S TREAM


C lasses par a gra vao de a rqu ivos em b ytes .

P R I N C I P AI S C O N S T R U T O R E S
FileOutputStream(File arq ) throws IOException
C r ia um F i le Ou tp u tS t r e am a part i r d e um a v a r i ve l F ile

FileOutputStream(String arq) throws IOException


C r ia um F i le Ou tp u tS t r e am a part i r d e um a v a r i ve l S tr in g

FileOutputStream(String arq, s boolean adiciona) throws IOException


C r ia u m F i le Ou tp u tS t r e am a p ar t i r de uma v a r i ve l S tr in g c om a o p o d e a dic io nar
a o fi na l de u ma arqu i vo e xis t en te.

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

flush()

Descarrega a sada esvaziando o buffer

void flush()

write()

Grava um int na stream de sada.

void write(int b)

write()

Grava um byte na stream de sada.

void write(byte[] b)

write()

Grava n bytes na stream de sada.

int write(byte[] b, int inicio, int tam)

28

O BJECT O UTPUT S TREAM


C lasse para gra vao o bje tos ser ia l izad os .

P R I N C I P AI S C O N S T R U T O R E S
ObjectOutputStream(OutputStream saida) throws IOException, StreamCorruptedException
C r ia Ob jec tO u tpu t S tr ea m a p ar t ir d e um Ou tp u t Str ea m

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

flush()

Descarrega a sada esvaziando o buffer

void flush()

write()

Grava um int na stream de sada.

void write(int b)

write()

Grava um byte na stream de sada.

void write(byte[] b)

write()

Grava n bytes na stream de sada.

int write(byte[] b, int inicio, int tam)

B UFFERED O UTPUT S TREAM


C lasse que impleme n ta uma Ou tp u tStrea m b u ffer iza da

P R I N C I P AI S C O N S T R U T O R E S
BufferedOutputStream(OutputStream saida)
Cr ia um Buffer edO u tpu tStr eam a p ar tir de um Ou tp u tStr eam

BufferedOutputStream(OutputStream saida, int Tamanho)


C r ia u m Bu f f er e dOu tp u t Str ea m a p ar ti r d e um O u tpu tS t r e am , defi n ind o o ta ma nho d o
b u f fer

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

flush()

Descarrega a sada esvaziando o buffer

void flush()

write()

Grava um int na stream de sada.

void write(int b)

write()

Grava n bytes na stream de sada.

void write(byte[] b, int inicio, int tam)

D ATA O UTPUT S TREAM


Imp lemen ta a gr a va o de todos os tip os p rimitivos d o Ja va .

P R I N C I P AI S C O N S T R U T O R E S
DataOutputStream(OutputStream saida)
Cr ia um Data Ou tp u tStr eam a pa rtir d e um Ou tpu tStre am

29

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

writeShort()

Grava um short no OutputStream

void writeShort(short x)

writeInt()

Grava um int no OutputStream

void writeInt(int x)

writeBoolean()

Grava um boolean no OutputStream

void writeBoolean(Boolean x)

writeChar()

Grava um char no OutputStream

void writeChar(int x)

writeDouble()

Grava um doubl no OutputStream

void writeDouble(double x)

writeByte()

Grava um byte no OutputStream

void writeByte(byte x)

writeLong()

Grava um long no OutputStream

void writeLong(long x)

A RQUIVOS T EXTO
Arq uivos te xto so man ip ulados c omo se q ncia d e car acter es . Para a e n trada
u tiliz amos a c lass e Re ade r e suas desce nde n tes . Para a sa d a usa mos a Wr iter .

R EADER
Su bclasse d e tod as as c lasses de en tr ada d e car ac teres ( rea ders) .

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

read()

L um caractere de entrada

Int read()

read()

L uma seqncia de caracteres colocando no array a


partir de ind

Int read(char[] c, int ind, int quant)

read()

L um array de caracteres de entrada

Int read(char[] c)

close()

Fecha o reader

void close()

B U F F E R E D R E AD E R
C lasse R ea der c om bu ffer , o timiza ndo o acess o aos da dos .

P R I N C I P AI S C O N S T R U T O R E S
BufferedReader (Reader r)
Cr ia um Buffer edR eade r a p ar tir d e u m Read er
30

BufferedReader (Reader r, int tamanho)


Cr ia um Buffer edR eade r a p ar tir d e u m Read er es pec ifican do o taman ho

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

read()

L um caractere de entrada

Int read()

read()

L uma seqncia de caracteres colocando no array a


partir de ind

Int read(char[] c, int ind, int tam)

readLine()

L uma linha de caracteres

String readLine()

close()

Fecha o reader

void close()

L INE N UMBER R EADER


C lasse R ea der para co n tro le de linhas

P R I N C I P AI S C O N S T R U T O R E S
LineNumberReader (Reader r)
Cr ia um L in eNu mberRe ade r a pa rtir de u m Re ade r

LineNumberReader (Reader r, int tamanho)


Cr ia um L in eNu mberRe ade r a pa rtir de u m Re ade r , esp ecifica ndo o taman ho

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

read()

L um caractere de entrada

Int read()

read()

L uma seqncia de caracteres colocando no


array a partir de ind

Int read(char[] c, int ind, int tam)

readLine()

L uma linha de caracteres

String readLine()

setLineNumber()

Posiciona a leitura na linha x

void setLineNumber(int x)

getLineNumber()

Retorna a linha atual

Int getLineNumber()

close()

Fecha o reader

void close()

Mtodo

Descrio

Assinatura

read()

L um caractere de entrada

Int read()

read()

L uma array de caracteres

Int read(char[] c)

read()

L uma seqncia de caracteres colocando no


array a partir de ind

Int read(char[] c, int ind, int quant)

close()

Fecha o reader

void close()

I NPUT S TREAM R EADER


C lasse R ea der que ag e co mo co n vers ora e n tre s tr eam e car ac te res .

P R I N C I P AI S C O N S T R U T O R E S
InputStreamReader (InputStream imp)
Cr ia um Inp u tStrea mRe ade r a pa rtir de u m In pu tStre am

InputStreamReader (InputStream imp, int tamanho)

31

C r ia um I np u t Str ea mR e ade r a p ar t ir d e um I np u t S tr e am esp ec i f ic and o o t a ma nho do


b u f fer

P R I N C I P AI S M T O D O S
FileReader
C lasse R ea der para le itu ra d e ar qu ivos d e ca rac ter es .

P R I N C I P AI S C O N S T R U T O R E S
FileReader (File arq)
Cr ia um F i leR ead er a p ar tir de um ob je to F ile

FileReader (String arq)


Cr ia um F i leR ead er a p ar tir de uma String

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

read()

L um caractere de entrada

Int read()

read()

L uma array de caracteres

Int read(char[] c)

read()

L uma sequncia de caracteres colocando no array a


partir de ind

Int read(char[] c, int ind, int tam)

close()

Fecha o reader

void close()

W RITER
Su bclasse d e tod as as c lasses de s a da de ca rac ter es (wr i te rs) .

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

write()

Grava um caractere na sada

void write(int c)

write()

Grava um array de caracteres na sada

void write(char[] c)

write()

Grava uma seqncia de caracteres no array a partir de ind

void write(char[] c, int ind, int tam)

flush()

Descarrega a sada esvaziando o buffer

void flush()

close()

Fecha o writer

void close()

32

B UFFERED W RITER
C lasse R ea der c om bu ffer , o timiza ndo o acess o aos da dos .

P R I N C I P AI S C O N S T R U T O R E S
BufferedWriter(Writer w)
Cr ia um o bje to Buffere dWr i ter a p ar tir de um W riter

BufferedWriter(Writer w, int tam)


Cr ia um ob je to Bu ffe redWr i te r a p ar tir de um Wr ite r, esp ecifican do o ta ma nho do
b u f fer

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

write()

Grava um caractere na sada

void write(int c)

write()

Grava um array de caracteres na sada

void write(char[] c)

write()

Grava uma seqncia de caracteres no array


a partir de ind

void write(char[] c, int ind, int tam)

newLine()

Adiciona uma nova linha

void newLine()

flush()

Descarrega a sada esvaziando o buffer

void flush()

close()

Fecha o writer

void close()

Mtodo

Descrio

Assinatura

write()

Grava um caractere na sada

void write(int c)

write()

Grava um array de caracteres na sada

void write(char[] c)

write()

Grava uma String no array a partir de ind

void write(String c, int ind, int tam)

flush()

Descarrega a sada esvaziando o buffer

void flush()

close()

Fecha o writer

void close()

O UTPUT S TREAM W RITER


C lasse W riter qu e age c omo c on versor a en tr e s tre am e car ac te res .

P R I N C I P AI S C O N S T R U T O R E S
OutputStreamWriter (OutputStream saida)
C r ia um O ut p u tS t r ea mW r i ter a par t ir d e um O u tpu t S tr ea m

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

write()

Grava um caractere na sada

void write(int c)

write()

Grava um array de caracteres na sada

void write(char[] c)

write()

Grava uma String no array a partir de ind

void write(String c, int ind, int tam)

flush()

Descarrega a sada esvaziando o buffer

void flush()

close()

Fecha o writer

void close()

33

F ILE W RITER
C lasse espec fica para a ma n ipula o de arq uivos de ca rac ter es

P R I N C I P AI S C O N S T R U T O R E S
FileWriter(File arq)
Cr ia um F i leWr iter a pa rtir de u m o bje to F i le

FileWriter(String arq)
C r ia um F i leW r i t er a pa r t ir de u ma S tr in g

P RINT W RITER
C lasse Writer esp ecfica
p la t a for ma e m e x ecu o .

par a g ra var ca rac ter es for ma tados d e

acor do

co m a

P R I N C I P AI S C O N S T R U T O R E S
PrintWriter(OutputStream saida, boolean af)
C r ia um Pr in tWr i te r a p ar t ir de um Ou tp u t S tr eam , espec i fic and o s e dese ja o a u to f lus h .

PrintWriter(Writer saida, boolean af)


Cr ia um Pr in tWr i te r a p ar t ir de um W ri t er , esp ecifica ndo s e des eja o au to flush .

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

print()

Grava um boolean

void println(boolean s)

print()

Grava um int

void println(int s)

println()

Grava um double

void println(double s)

println()

Grava uma String e um final de linha

void println(String s)

write()

Grava um caractere na sada

void write(int c)

write()

Grava um array de caracteres na sada

void write(char[] c)

write()

Grava uma String no array a partir de ind

void write(String c, int ind, int tam)

write()

Grava um caractere na sada

void write(int c)

write()

Grava um array de caracteres na sada

void write(char[] c)

C LASSE

DE

E NTRADA

S ADA

R ANDOM A CCESS F ILE


P R I N C I P AI S C O N S T R U T O R E S
RandomAccessFile(String arq, String modo) throws IOException
C r ia u m o bj e to d o t ipo R a ndo mAc c es s Fi le a s s oc ia ndo - o a a r q , s e ndo o mo do de f in ido
c o mo r s o me n te le i tu r a e r w le i tu r a e gra v ao .

34

P R I N C I P AI S M T O D O S
Mtodo
read()
read()
read()
readLine()
skipBytes()
seek()
length()
write()
close()
readBoolean()
readInt()
ReadLong()
readDouble()
ReadChar()
readByte()
ReadFloat()
WriteBoolean()
writeInt()
WriteLong()
writeDouble()
WriteChar()
writeByte()
WriteFloat()

Descrio
L um byte do arquivo
L um array de bytes de um arquivo
L x bytes colocando em um array a partir de ind
L uma linha de caracteres do arquivo
Descarta x bytes da entrada
Posiciona o cursor no arquivo na posio x
Retorna o tamanho do arquivo
Escreve um array de bytes no arquivo
Fecha o arquivo
L um boolean do arquivo
L um int do arquivo
L um long do arquivo
L um double do arquivo
L um char do arquivo
L um byte do arquivo
L um float do arquivo
Grava um boolean no arquivo
Grava um int no arquivo
Grava um long no arquivo
Grava um double no arquivo
Grava um char no arquivo
Grava um byte no arquivo
Grava um float no arquivo

Assinatura
int read()
int read(byte[] x)
int read(byte[] x, int ind, int quant)
String readLine()
void skipBytes(long x)
seek(long x)
long length()
void write(byte[] dados)
void close
boolean readBoolean()
int readInt()
long readLong()
double readDouble()
char readChar()
byte readByte()
float readFloat()
void writeBoolean(boolean x)
void writeInt(int x)
void writeLong(long x)
void writeDouble(double x)
void writeChar(char x)
void writeByte(byte x)
void writeFloat(byte x)

Exemplo 1 Utilizando FileInputStream e FileOutputStream para copiar arquivos.


import java.io.*;
public class TesteStream {
public static void main(String[] args) throws IOException {
FileInputStream entrada = null;
FileOutputStream saida = null;
try {
entrada = new FileInputStream("dados.txt");
saida = new FileOutputStream("resultado.txt");
int c;
while ((c = entrada.read()) != -1) {
saida.write(c);
}
} finally {
if (entrada != null) {
entrada.close();
}
if (saida != null) {
saida.close();
}
}
}
}

35

Exemplo 2 Utilizando FileReader e FileWriter para copiar arquivos


import java.io.*;
public class TesteReaderWriter {
public static void main(String[] args) throws IOException {
FileReader entrada = null;
FileWriter saida = null;
try {
entrada = new FileReader("Dados.txt");
saida = new FileWriter("Resultado.txt");
int c;
while ((c = entrada.read()) != -1) {
saida.write(c);
}
} finally {
if (entrada != null) {
entrada.close();
}
if (saida != null) {
saida.close();
}
}
}
}

I NTERFACE G RFICA
S WING
O JFC /Sw in g o p aco te padr o de cons tru o de in te rfaces gr fica e m Ja va . Ele a
e xtens o do an tigo paco te aw t, utiliza do n as vers es a n ter ior es .
Par a q ue poss amos utiliza r o swing n ecess rio impo rtar mos as c lasses dos pac otes
java x.sw ing.

T AB E L A 1.1 C L AS S E S AWT E S W I N G

36

C OMPONENTES V ISUAIS
Ver emos ag ora os pr inc ip ais c ompo nen tes Sw ing :

JC OMPONENT
JCo mp onen t a su perc lass e de to dos os co mp one n tes visua is .

P R I N C I P AI S M T O D O S
Comando

Descrio

Assinatura

setBackground()

Muda a cor de fundo do componente

void setBackground(Color cor)

setEnabled()

habilita ou desabilita um componente

void setEnabled(boolean habilitado)

setFont()

Muda a fonte do componente

void setFont(Font fonte)

setVisible()

Deixa visvel ou invisvel um componente

void setVisible(boolean visivel)

setToolTipText()

Adiciona dica a um componente

void setToolTipText(String dica)

JF RAME
J F r am e o c om po nen t e q ue im p lem en ta u ma j ane la . E le c om pos t o po r u ma ba r r a
d e menus (o pciona l) , e um co n ten tPane ( re a til da ja ne la)

P R I N C I P AI S C O N S T R U T O R E S
JFrame();
JFrame(String Titulo);
P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

setDefaultCloseOperation()

Configura a opo de fechar

setDefaultCloseOperation(int modo)

getContentPane()

Retorna o painel de contedo

Int getContentPane()

setLayout()

Muda o Layout do componente

void Layout(LayoutManager lm)

setVisible()

Configura a visibilidade do componente

void setVisible(v boolean)

setSize()

Altera o tamanho do componente

void setSize( int x, int y)

setTitle()

Muda o ttulo do componente

void setTitle(String Titulo)

37

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJFrame {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame();
tela.setTitle("Janela");
tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

JP ANEL
A classe JPa in el imple me n ta um con tainer , ou se ja , co mp one n te gr fico qu e forn ece
o esp ao pa ra c olocarmos ou tros c ompon entes e m se u in ter ior . Uma vez cr ia do e le deve
se r ad ic iona do a um ob je to JFr ame o u s i milar .

P R I N C I P AI S C O N S T R U T O R E S
JPanel()
JPanel(LayoutManager lm)
P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

setVisible()

Configura a visibilidade do componente

void setVisible(v boolean)

setSize()

Altera o tamanho do componente

void setSize( int x, int y)

setBounds()

Altera posio e a altura e lagura do componente

Void setBounds(int x, int y, int a int l)

setlocation()

Altera a localizao do componente

void setLocation(int x, int y)

setBorder()

Configura a borda do componente

38

Exemplo de Cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJPanel {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JPanel");
tela.setSize(800,600);
tela.setVisible(true);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel painel = new JPanel();
painel.setBorder(BorderFactory.createEtchedBorder());
tela.getContentPane().add(painel);
painel.setBounds(250,160,240,240);
}
}

JL ABEL
o c o mp on en te Sw ing que s er ve par a e x ibi r m os u m te x t o , um a im ag em o u a mb os .
O te xto p od e con ter c digos H TML e a imag em s upor ta os for ma tos jp eg , g i f o u pn g .

P R I N C I P AI S C O N S T R U T O R E S
JLabel()
JLabel(String Texto)
JLabel( Icon Imagem)
P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

getText()

Retorna o texto do rtulo

String getText()

setText()

Modifica o texto do rtulo

void setText(String Texto)

setIcon()

Modifica o cone do rtulo

void setIcon(icon icone)

setDisabledIcon()

Modifica o cone do rtulo quando este estiver


desabilitado

void setDisabledIcon(icon icone)

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJLabel {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JLabel");
JLabel rotulo = new JLabel();
JLabel rotuloAux = new JLabel("SENAC");
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
tela.add(rotulo);
tela.add(rotuloAux);
tela.setSize(800,600);
tela.setVisible(true);
39

tela.add(rotulo);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
rotulo.setSize(200,150);
rotulo.setBackground(Color.RED);
rotulo.setForeground(Color.WHITE);
rotuloAux.setSize(150,50);
Icon icone = new ImageIcon("1.jpg");
rotulo.setIcon(icone);
rotuloAux.setText("Teste");
rotulo.setLocation(250,180);
rotuloAux.setLocation(10,100);
}
}

JB UTTON
O Jb u ttom ass i m co mo o Jlab el co mp or ta e e xib io de te xto e imag em. O d i fe renc ia l
que es te u tilizad o q uan do d eve mos to ma r a lgu ma a o a tra vs de u m co ma ndo .

P R I N C I P AI S C O N S T R U T O R E S
JButton()
JButton(String Texto)
JButton(Icon Imagem)
P R I N C I P AI S M T O D O S
Comando

Descrio

Assinatura

getText

Retorna o texto do boto

String getText()

setText

Modifica o texto do boto

Void setText(String Texto)

setIcon

Modifica o cone do boto

void setIcon(icon icone)

setDisabledIcon

Modifica o cone do boto quando este estiver


desabilitado

void setDisabledIcon(icon icone)

40

Exemplo de cdigo
import javax.swing.*;
import java.awt.*;
public class TesteJButton {
public static void main(String[] args) {
JFrame
tela;
JButton botao;
JButton botaoAux;
tela
= new JFrame();
botao
= new JButton();
botaoAux = new JButton();
tela.setLayout(null);
tela.setTitle("Este \u00E9 o T\u00EDtulo da Janela");
tela.getContentPane().setBackground(Color.GREEN);
tela.add(botao);
tela.add(botaoAux);
tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().add(botao);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setSize(200,150);
botao.setBackground(Color.RED);
botao.setForeground(Color.WHITE);
botaoAux.setSize(150,50);
botaoAux.setToolTipText("Este \u00E9 um bot\u00E3o criado com o
Java!!");
botao.setToolTipText("Este \u00E9 um bot\u00E3o colorado!!");
botao.setText("Bot\u00e3o Vermelho");
Icon icone = new ImageIcon("1.png");
botao.setIcon(icone);
botaoAux.setText("Bot\u00e3o de Teste");
botao.setLocation(250,180);
botaoAux.setLocation(10,100);
}

JT OGGLE B UTTON
C lasse que re pres en ta um b o t o d e do is esta dos : pr ess ion ado ou n o p ress io nad o .

P R I N C I P AI S C O N S T R U T O R E S
JToggleButton()
JToggleButton(String Texto)
JToggleButton(Icon Imagem)
41

JToggleButton(String Texto, Icon Imagem)


P R I N C I P AI S M T O D O S
Comando
getText()
setText()
setIcon()
isSelected()

Descrio
Retorna o texto do boto
Modifica o texto do boto
Modifica o cone do boto
Retorna se o boto est pressionado

Assinatura
String getText()
void setText(String Texto)
void setIcon(icon icone)
void isSelected()

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJToggleButton {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JToggleButton");
JToggleButton botao = new JToggleButton();
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
tela.add(botao);
tela.setSize(800,600);
tela.setVisible(true);
tela.add(botao);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setSize(200,150);
botao.setBackground(Color.RED);
botao.setForeground(Color.WHITE);
botao.setLocation(250,180);
}
}

JC HECK B OX
o compon en te q ue e xib e uma ca ixa e u m r tulo que u tiliza mos pa ra se lecion ar uma
o po en tre do is es tad os poss ve is .

P R I N C I P AI S C O N S T R U T O R E S
JCheckBox()
JCheckBox (String Texto)
JCheckBox (Icon Imagem)
JCheckBox (Icon Imagem, boolean isSelected)

42

P R I N C I P AI S M T O D O S
Comando

Descrio

Assinatura

setSelected()

Configura o boto como selecionado ou no selecionado

Boolean setSelected()

setText()

Modifica o texto do boto

void setText(String Texto)

setIcon()

Modifica o cone do boto

void setIcon(icon icone)

isSelected()

Retorna se o boto est pressionado

void isSelected()

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJCheckBox {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JCheckBox");
JCheckBox botao
= new JCheckBox("Teclado");
JCheckBox botao2 = new JCheckBox("Mouse");
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
tela.getContentPane().add(botao);
tela.getContentPane().add(botao2);
tela.setSize(800,600);
tela.setVisible(true);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setBounds(20,40,100,30);
botao2.setBounds(20,140,100,30);
botao2.setSelected(true);
botao.setBackground(Color.RED);
botao.setForeground(Color.WHITE);
botao2.setBackground(Color.BLUE);
botao2.setForeground(Color.YELLOW);
}
}

JR ADIO B UTTON
E s ta a s u bcl as s e d e J Tog gle B u tt on que t a mb m i m p lem enta u m b o t o d e d ois
es tados .
Es te co mpo nen te de ve s er ass oc iad o a u m co mp one nte Bu ttonGr oup .
C o mp one n te qu e as s oc ia um c o nj un t o d e J R a di o Bu t tons par a s om en t e um
s e lec io na do por v ez .

P R I N C I P AI S C O N S T R U T O R E S
JRadioButton()
JRadioButton (String Texto)

43

b o t o s er

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

setSelected()

Configura o boto como selecionado


ou no selecionado

boolean setSelected()

setText()

Modifica o texto do boto

void setText(String Texto)

setSelectedIcon()

Modifica o cone do boto


selecionado

void setSelectedIcon(icon icone)

isSelected()

Retorna se o boto est pressionado

void isSelected()

Exemplo de Cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJRadioButton {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JRadioButton");
JRadioButton botao
= new JRadioButton("Teclado");
JRadioButton botao2 = new JRadioButton("Mouse");
ButtonGroup
grupo = new ButtonGroup();
JPanel p = new JPanel();
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
grupo.add(botao);
grupo.add(botao2);
p.setBorder(BorderFactory.createEtchedBorder());
p.setBounds(250,160,240,240);
p.add(botao);
p.add(botao2);
tela.getContentPane().add(p);
tela.setSize(800,600);
tela.setVisible(true);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setBackground(Color.RED);
botao.setForeground(Color.GREEN);
botao2.setBackground(Color.BLUE);
botao2.setForeground(Color.YELLOW);
}
}

JC OMBO B OX

C o mp one n te ed i t ve l o u n o qu e p er m i te s el ec ion ar i tens em u ma l is t a s us pe ns a

44

P R I N C I P AI S AS S I N AT U R AS :
JComboBox()
JComboBox(Object[] Itens)
P R I N C I P AI S M T O D O S
Comando

Descrio

Assinatura

clearSelection

Limpa a seleo da lista

void clearSelection()

getSelectedIndex

Retorna o ndice do item selecionado

int getSelectedIndex()

Add

Adiciona um texto lista

void add(String Texto)

getSelectedItem

Retorna o texto selecionado da lista

String getSelectedItem()

getItem

Retorna o texto do ndice especificado

String getItem(int indice)

getSelectedIndexes

Retorna os ndices dos itens selecionados

int getSelectedIndexes()

getSelectedItems

Retorna os textos selecionados da lista

String getSelectedItems()

Exemplo prtico:
import javax.swing.*;
import java.awt.*;
public class TesteJComboBox {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JComboBox");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JComboBox cb = new JComboBox();
tela.getContentPane().add(cb);
cb.setBounds(10,10,70,20);
cb.addItem("RS");
cb.addItem("SC");
cb.addItem("PR");
cb.setEditable(true);
}
}

JL IST
Co mp one n te que per mite se lec ion armos u m item ou ma is d e u ma lis ta

45

P R I N C I P AI S C O N S T R U T O R E S
JList()
JLIst(Object[] itens)
P R I N C I P AI S M T O D O S
Comando

Descrio

Assinatura

clearSelection()

Limpa a seleo da lista

void clearSelection()

getSelectedIndex()

Retorna o ndice do item selecionado

int getSelectedIndex()

setSelectionMode()

Define se o modo de seleo da lista


simples ou mltipla

void setSelectionMode(ini modo)

getSelectedItem()

Retorna o texto selecionado da lista

String getSelectedItem()

getItem()

Retorna o texto do ndice especificado

String getItem(int indice)

getSelectedIndexes()

Retorna os ndices dos itens selecionados

int getSelectedIndexes()

getSelectedItems()

Retorna os textos selecionados da lista

String getSelectedItems()

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJList {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JList");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
String[] lista = {"RS","SC","PR","SP","RJ"};
JList ls = new JList(lista);
tela.getContentPane().add(ls);
ls.setBounds(10,10,30,70);
ls.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
}
}

JT EXT F IELD
C a mp oTe x to de s o men t e um a li nh a

46

P R I N C I P AI S C O N S T R U T O R E S
JTextField()
JTextField(String Texto)
P R I N C I P AI S M T O D O S
Mtodos

Descrio

Assinatura

GetText

Retorna o texto do campo

String getText()

SetText

Modifica o texto do campo

void setText(String Texto)

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJTextField {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JTextField");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JTextField tf = new JTextField("Isto um JTextField");
tela.getContentPane().add(tf);
tf.setBounds(10,10,150,20);
}
}

JO PTION P ANE

Es ta c lasse nos p ermite in tera gir com o usu rio a tr a vs d e mensag ens . Es tas
mens age ns p ode s er do tip o Con firm, Inpu t o u Messag e

P R I N C I P AI S C O N S T R U T O R E S
JOptionPane(Object Texto)
JOptionPane(Object Texto, int TipoDeMensagem)
JOptionPane(Object Texto, int TipoDeMensagem, int TipoDeOpcao)
JOptionPane(Object Texto, int TipoDeMensagem, int TipoDeOpcao,Icon icone)

47

Mtodos

Descrio

Assinatura

showConfirmDialog()

Exibe uma mensagem de questionamento

static int showConfirmDialog(Component


pai, Object msg, String titulo, int
TipodeOpcao)

showInputDialog()

Pergunta por uma entrada do usurio

static int showinputDialog(Object msg)

showMessageDialog()

Exibe uma mensagem de informao ao


usurio

static int showConfirmDialog(Component


pai, Object msg, String titulo, int TipodeMsg)

ShowOptionDialog()

Mensagem unificando as opes acima

static int showConfirmDialog(Component


pai, Object msg, String titulo, int
TipodeOpcao, int TipodeMsg)

Tipos de Mensagens

Descrio

ERROR_MESSAGE

Mensagens de Erro

INFORMATION_MESSAGE

Mensagens informativas

WARNING_MESSAGE

Mensagens de aviso

QUESTION_MESSAGE

Mensagens Interrogativas

PLAIN_MESSAGE

Mensagens sem o cone

Tipos de Opes

Smbolo

Descrio

YES_NO_OPTION

Botes Sim No

YES_NO_CANCEL_OPTION

Botes Sim, No e Cancelar

OK_CANCEL_OPTION

Botes OK, Cancelar

DEFAULT_OPTION

Boto OK

Tipos de Retorno

Descrio

YES_OPTION

O usurio retornou Sim

NO_OPTION

O usurio retornou No

CANCEL_OPTION

O usurio retornou Cancelar

OK_OPTION

O usurio retornou OK

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJOptionPane {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JOptionPane");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JOptionPane j = new JOptionPane();
j.showMessageDialog(tela,"Java Vive!!!","SENAC RS",
JOptionPane.WARNING_MESSAGE);
}
}
48

JT EXT A REA
Es te co mpo nen te nos p ermite e xib irmos te xto em m ltip las linh as.

P R I N C I P AI S C O N S T R U T O R E S
JTextArea()
JTextArea(String texto)
JTextArea(String texto, int linhas, int colunas)
P R I N C I P AI S M T O D O S
Mtodos

Descrio

Assinatura

getText()

Retorna o texto do campo

String getText()

setText()

Modifica o texto do campo

void setText(String Texto)

append()

Insere um texto no final

void append (String texto)

Exemplo de Cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJTextArea {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JTextArea");
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JTextArea ta = new JTextArea("texto um");
ta.setBounds(100,100,200,200);
tela.getContentPane().add(ta);
tela.setSize(800,600);
tela.setVisible(true);
ta.append(" teste");
}
}

49

JT ABBED P ANE
C o mp one n te q ue s er ve p ar a e x ib ir g ui as . O nde c a da gu ia d e vem os ad ic ion ar um
J Pa ne l .

P R I N C I P AI S C O N S T R U T O R E S
JTabbedPane()
JTabbedJPane(int direcao)
P R I N C I P AI S M T O D O S
Mtodos

Descrio

Assinatura

add()

Adiciona um componente com um texto

Component
add(String
Component componente)

remove()

Remove um componente especificado


pelo indice

int remove(int indice)

setIconAt()

Altera um cone

void setIconAt(int indice, Icon icone)

setSelectedIndex()

Configura a guia selecionada

void setSelectedIndex(int indice)

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJTabbedPane {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JTabbedPane");
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JTabbedPane tp = new JTabbedPane(JTabbedPane.LEFT);
tp.setBounds(100,100,200,200);
tela.getContentPane().add(tp);
tp.add("A",new JPanel());
tp.add("B",new JPanel());
tp.add("C",new JPanel());
tela.setSize(800,600);
tela.setVisible(true);
}
}

50

texto,

M ENU B AR , J MENU E JM ENU I TEM

A c las s e J M en uBar u ti l iz ad a, j un t am ente c om J M en u e J M en u It em , p ar a gera r


menus em Java.

P R I N C I P AI S C O N S T R U T O R E S
JMenuBar()
JMenuBar(String texto)
P R I N C I P AI S M T O D O S
Mtodos

Descrio

Assinatura

add()

Adiciona um componente ao menu

Component add(Component c)

remove()

Remove um componente JMenuItem

void remove(JMenuItem item)

Insert()

Insere um JMenuitem em uma posio

JMenuItem insert(JMenuItem m, int pos)

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJMenuBar {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame();
tela.setTitle("Teste JMenuBar");
JMenuBar barra = new JMenuBar();
JMenu menu1 = new JMenu("Cadastrar");
JMenu menu2 = new JMenu("Consultar");
JMenuItem item1 = new JMenuItem("Clientes");
JMenuItem item2 = new JMenuItem("Fornecedores");
JMenuItem item3 = new JMenuItem("Produtos");
JMenuItem item4 = new JMenuItem("Vendas");
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu2.add(item4);
barra.add(menu1);
barra.add(menu2);
tela.setJMenuBar(barra);
51

tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

JT ABLE

P R I N C I P AI S C O N S T R U T O R E S
JTable(int li, int co)
JTable(Object dados, Object colunas)
Mtodos

Descrio

Assinatura

clearSelection()

Limpa a seleo de todas colunas

void clearSelection()

getSelectedColumn()

Retorna a ltima coluna selecionada

Int getSelectedColumn()

getSelectedRow()

Retorna a ltima linha selecionada

Int getSelectedRow()

getSelectedRows()

Retorna as linhas selecionadas

Int[] getSelectedRows()

getValueAt()

Retorna o valor da clula indicada pela


linha e coluna

Object getValueAt(int linha, in coluna)

setValueAt()

Troca o valor da clula indicada pela


linha e coluna

Object setValueAt(Object valor, int linha,


int coluna)

setSelectionMode()

Configura o modo de seleo da tabela

void setSelectionMode(int modo)

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJTable {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JTable");
tela.getContentPane().setBackground(Color.WHITE);
String[] colunas = new String []{"Nome","Idade"};
String[][] dados
= new String [][] {{"Humberto Moura","26"},{"",""}};
JTable tabela
= new JTable(dados,colunas);
JScrollPane sp = new JScrollPane(tabela);
tela.getContentPane().add(sp);
tela.pack();
tela.setVisible(true);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
52

JF ILE C HOOSER

JF ileC hoose r implemen ta uma ca ixa d e d i lo g o p ara qu e o usu rio possa se lec io nar
u m ar qu ivo loca l.

P R I N C I P AI S C O N S T R U T O R E S
JFileChooser()
P R I N C I P AI S M T O D O S
Mtodos
showOpenDialog()

Descrio

Assinatura

Exibe a caixa de seleo de arquivo

Component int showOpenDialog(Component


pai)

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteJFileChooser {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame();
tela.setTitle("Teste JFileChooser");
tela.setSize(800,600);
tela.setVisible(true);
int ok;
JFileChooser sa = new JFileChooser();
TesteJFileChooser a = new TesteJFileChooser();
ok = sa.showOpenDialog(null);
if (ok == JFileChooser.APPROVE_OPTION) {
System.out.println("Arquivo: " + sa.getSelectedFile().getName());
}
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

53

JI N T E R N AL F R AM E
U til iza do em ap l icaes de m l tip las ja ne las ( md i)

P R I N C I P AI S C O N S T R U T O R E S
JInternalFrame(String titulo, boolean redm, boolean fecha, boolean max, boolean min)
P R I N C I P AI S M T O D O S
Mtodos

Descrio

Assinatura

show()

Exibe o JInternalFrame

void show()

d is p ose()

f ec ha o j in te r na l fr a me

v o id dis pose ( )

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class Mdi {
public static void main(String[] args) {
new Teste();
}
}
class Teste extends JFrame{
JDesktopPane painel= new JDesktopPane();
JInternalFrame i1 = new JInternalFrame("Java",true,true,true,true);
JInternalFrame i2 = new JInternalFrame("Desktop",true,true,true,true);
Teste() {
setTitle("SENAC RS");
getContentPane().add(painel);
painel.add(i1);
painel.add(i2);
painel.setVisible(true);
i1.setSize(270,270);
i2.setSize(270,270);
i1.show();
i2.show();
setSize(800,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

54

L AYOUT
G ERENCIADORES DE L AYOUT
O G ere ncia dor d e layo u t, um ob je to q ue imp lemen ta a in ter fac e La you tMan ag er
d e ter mi nand o o m od o d e e x ib io dos c o mp one n tes de n tr o de um c on ta i ner .
P ar a c on f ig urar mos o la yo u t de u m c on ta in er u t il iza mos o m t odo s e t La y ou t( new
T i poL a you t()) . Se nd o T i p oL a you t s ub titu id o pe la c lass e de layo u t esc o lh id a . Se n o
q uis ermos u tiliz ar n enh um passamos n ull co mo par me tr o a es te m tod o .

F LOW L AYOUT
O FlowL a yo u t co loca os c ompone n tes e m um flu xo seq enc ia l na ja ne la , da esqu erd a
p ara dire ita e d e c ima p ara ba ixo , como s e os c ompo nen tes foss em pa la vras sen do
esc ritas em um c ader no .

P R I N C I P AI S C O N S T R U T O R E S
FlowLayout()
FlowLayout(int alinhamento, x, y)
Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class Inicio {
public static void main(String[] args) {
new Teste();
}
}
55

class Teste extends JFrame{


Teste() {
setTitle("SENAC RS");
JButton t1 = new JButton("Teste");
JButton t2 = new JButton("do");
JButton t3 = new JButton("layout");
JButton t4 = new JButton("Flow");
JButton t5 = new JButton("Layout");
getContentPane().add(t1);
getContentPane().add(t2);
getContentPane().add(t3);
getContentPane().add(t4);
getContentPane().add(t5);
setLayout(new FlowLayout());
setSize(800,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

G RID L AYOUT
O G r i dLa yo u t nos p er mi t e d is tr ib ui r os c om po nen t es e m l in has e c o lu nas, c o mo s e
foss e uma g rad e no co n ta ine r . A d is tr ibu io fe ita da es que rda pa ra d ire ita e d e cima
p ar a ba i xo .

P R I N C I P AI S C O N S T R U T O R E S
GridLayout()
GridLayout(int linhas, int colunas)
GridLayout(int linhas, int colunas, int horizontal, int vertical)
Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteGridLayout {
public static void main(String[] args) {
JFrame tela;
JButton botao1 = new JButton("1");
JButton botao2 = new JButton("2");
JButton botao3 = new JButton("3");
JButton botao4 = new JButton("4");
JButton botao5 = new JButton("5");
JButton botao6 = new JButton("6");
56

tela = new JFrame();


tela.setTitle("Teste GridLayout");
tela.setLayout(new GridLayout(3,3));
tela.getContentPane().add(botao1);
tela.getContentPane().add(botao2);
tela.getContentPane().add(botao3);
tela.getContentPane().add(botao4);
tela.getContentPane().add(botao5);
tela.getContentPane().add(botao6);
tela.pack();
tela.setVisible(true);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

B ORDER L AYOUT
D i vi de o c o n ta ine r em c i nco r eg i es i ma gi n r i as c ha ma das d e P AG E_ ST AR T ( 1 ) ,
PAG E_ END ( 2) L INE_ END ( 3) L IN E_ START (4) e C EN TER ( 5) , se ndo q ue ape nas
u m co mpo ne te po der oc upa r cad a re gio .

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
public class TesteBorderLayout {
public static void main(String[] args) {
JFrame tela;
JButton botao1 = new JButton("1");
JButton botao2 = new JButton("2");
JButton botao3 = new JButton("3");
JButton botao4 = new JButton("4");
JButton botao5 = new JButton("5");
tela = new JFrame();
tela.setTitle("Teste BorderLayout");
tela.setLayout(new BorderLayout());
tela.getContentPane().add(botao1,BorderLayout.PAGE_START);
tela.getContentPane().add(botao2,BorderLayout.PAGE_END);
tela.getContentPane().add(botao3,BorderLayout.LINE_END);
tela.getContentPane().add(botao4,BorderLayout.LINE_START);
tela.getContentPane().add(botao5,BorderLayout.CENTER);
tela.setVisible(true);
tela.pack();
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

57

E VENTOS
O tr a ta mento de e v en tos fe i to atr a v s d e de le ga o de tr a ta mento .
Par a qu e poss amos tra ba lha r com de vemos impor ta r o p aco te ja va .aw t.e ve nt
Par a cad a tipo de e ven to e xis te uma in ter fac e lis ten er r esp ons vel p or es te .
D e v em os , e n to , s e lec io nar a in t er face c or r e t a p ar a c a da c omp one n te e e ve n to ,
impleme n ta ndo todos os s eus m todos ou d eixand o-os vaz io s e n o n ecess rios .
Q uan to a o c omp on ente qu e q uer emos ma nipu la r os eve n tos , deve mos reg is tra r es ta
in te r face atra vs d o m to do a dd apr opr iad o .

A CTION E VENT
S o ma nipu la dor es de e ven to de ao
Interface
Ac tion Lis ten er

Mtodo
Ac tion Pe r fo rme d( Ac tio n Even t)

Componentes

Mtodo Add

JButton

AddActionListener()

JTextField (quando pressionado ENTER)


JList (clique duplo)
JMenuItem

Principais Mtodos
getActionCommand()

Descrio
Comando relacionado a ao

Assinatura
String getActionCommand()

Exemplo de cdigo:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TesteActionEvent implements ActionListener {
public TesteActionEvent() {
JFrame
tela;
JButton botao;
JButton botaoAux;
tela
= new JFrame();
botao
= new JButton();
tela.setLayout(null);
tela.setTitle("Teste ActionEvent");
tela.getContentPane().setBackground(Color.GREEN);
tela.add(botao);
tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().add(botao);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setSize(200,150);
botao.setText("OK");
botao.setLocation(250,180);
botao.setActionCommand("ok");
botao.addActionListener(this);
58

}
public
new
}
public
if

static void main(String[] args) {


TesteActionEvent();
void actionPerformed(ActionEvent ae) {
("ok".equals(ae.getActionCommand())) {
System.out.println("OK Pressionado!!!");

}
}
}

I TEM E VENT
S o ma nipu la dor es de e ven tos d e se le o d e itens
Interface
ItemListener

Mtodo
ItemStateChanged(ItemEvent)

Componentes
JcheckBox

Mtodo Add
AddItemListener()

List
Principais Mtodos

Descrio

Assinatura

getItem()

Retorna o Item

Object getItem()

getItemSelectable()

Retorna o controle

ItemSelectable getItemSelectable()

T EXT E VENT
S o ma nipu la dor es de e ven tos d e te xto
Interface
TextListener

Mtodo
textValueChanged(TextEvent)

Componentes
JTextArea

Mtodo Add
AddTextListener()

JTextField
Principais Mtodos

Descrio

Assinatura

F OCUS E VENT
S o ma nipu la dor es de e ven tos d e foco
Interface

Mtodo

FocusListener

focusGained(FocusEvent)
FocusLost(FocusEvent)

59

Componentes

Mtodo Add

Todos os componentes

AddFocusListener()

List

K EY E VENT
S o ma nipu la dor es de e ven tos d o tec lad o
Interface
KeyListener

Mtodos
keyPressed(KeyEvent)
KeyReleased(KeyEvent)
KeyTyped(KeyEvent)

Componentes

Mtodo Add

Todos os componentes

AddItemListener()

Principais Mtodos

Descrio

Assinatura

getKeyChar()

Retorna um caracter

char getKeyChar()

getKeyCode()

Retorna o cdigo do caracter

Int getKeyCode()

M OUSE E VENT
S o ma nipu la dor es de e ven to do mo use
Interface
MouseListener

Mtodo
mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)

C o m po ne nt es

M t o do A dd

Todos os componentes

addMouseListener()

List
P r i nc i pa is M t o do s

D e sc r i o

A s s in at u ra

getX()

Retorna a coordenada x do clique

int getX()

getY()

Retorna a coordenada y do clique

int getY()

60

W INDOW E VENT
S o ma nipu la dor es de e ven tos d e jane la
Interface
WindowListener

Mtodo
WindowActivated(WindowsEvent)
WindowClosed(WindowsEvent)
WindowClosing(WindowsEvent)
WindowDeactivated(WindowsEvent)
WindowDeIconfied(WindowsEvent)
WindowIconfied (WindowsEvent)
WindowOpened (WindowsEvent)

C o m po ne nt es

M to do A dd

JFrame
P r i nc i pa is M t o do s
getWindow()

AddWindowListener()
D e sc r i o

A s s in at u ra

Retorna a janela

Window getWindow

C LASSES A DAPTER
S o c lass es qu e u tiliza mos p ara o tra tamen to de e ven tos . A van tage m de se u tiliza r
u ma classe Ad ap ter es t no fa to d e que s p rec isa mos escre ver os m tod os que iremos
r ea lme n te u tiliz ar , nos po upa ndo d e esc reve r to dos os m todos o br iga trios da in ter fac e
L is te ner .
C la sse A da pt e r

I n t er f ac e L i ste ne r

FocusAdapter

FocusListener

KeyAdapter

KeyListener

MouseAdapter

MouseListener

WindowAdapter

WindowListener

61

P ROGRAMAO M ULTITAREFA

EM

J AVA

T HREADS
T hre ads s o lin has e m e xec u o de u m pr ogr ama .T ecn ica men te , um thr ead um
nic o flu xo s eq encia l d e e xecu o . A ling uag em Ja va p ermite q ue s eu ap lica tivo
e x ecu te ma is d e uma l inh a s im u l tan eame n te e m s is te mas o pe r ac ion ais q ue pe r mi t a m
m u l ti t a r e fa .
Po demos cr iar u ma th rea d pa ra c ada o per ao q ue necess i ta mos , des ta for ma
ter amos es tas ope ra es sen do vir tu almente e xecu tad as ao mesmo te mpo.
Se em nosso ap lica tivo prec is sse mos faze r d i fer entes c lcu los c om in for ma es de
b anco de d ados r emo tas de d ive rsas loca lida des do mun do , se ndo que qu ere mos o
r esu ltad o d es tas o ma is r p ido p oss ve l , como po de ramos proc ede r de ta l for ma q ue
u ma qua n tid ade ma ior d e c lcu los s e ja c oncl u d a e m me nos te mpo poss ve l?
U ma p os s ve l s o lu o p ode r i a s er a l ocar u ma t hr e ad a c a da r o ti na d e c lcu lo.

A CLASSE T HREAD
A c l as s a jav a . la ng . Thr e ad r es po ns ve l p el a p r ogr ama o mu l ti ta r e fa em jav a .

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

start()

Inicia execuo da thread

void start()

yeld()

Pausa a thread passando a vez para a prxima de mesma


prioridade que a atual

static void yeld()

sleep()

Pausa a tread passando a vez para a prxima

static void sleep(long ms)

run()

Mtodo conter o cdigo da thread

void run()

join()

Adiciona a thread em execuo ao final da thead que executou o


mtodo

void join()

wait()

Pausa a thread em execuo at ser notificada

void wait()

notify()

Notifica a thread que foi pausada por wait()

void notify()

notifyAll()

Notifica todas as threads que foram pausadas com wait()

void notifyAll()

setPriority()

Configura a prioridade

void setPriority(int p)

setName()

Configura um nome a uma thread

Void setName(String nome)

C RIANDO T HREADS EM J AVA


Existem duas formas d e cru ar thr eads em ja va
Es te nder a c lasse Thre ad
Imp lemen ta r a in ter face R unn amb le
Cr ia ndo The ads es tend end o de ja va .lang .Th ead
E s ta a ma ne ira ma is s im pl es de c r i ar m os u ma th r ea d:
De vemos es te nde r da c lasse Th ea d e d epo is su bscre ve r o m todo r un( )
Exemplo:
public class TesteThreads {
public void executa() {
Linha l = new Linha();
Linha2 l2 = new Linha2();
l.start();
l2.start();
62

}
public static void main(String[] args) {
new TesteThreads().executa();
}
}
class Linha extends Thread {
public void run() {
for(int x=0;x<200;x++) {
System.out.println("1");
}
}
}
class Linha2 extends Thread {
public void run() {
for(int x=0;x<200;x++) {
System.out.println("2");
}
} }

C RIANDO T HEADS IMPLEMENTANDO R UNNAMBLE


E s ta a bor da ge m m ai s tra ba lhosa , mas n os d um ma io r c on tr ol e s o bre as t hr ea ds
Imp lemen ta ndo R unna mb le , p ode mos es ten der d e qua lq uer c lasse , a l m de d e finir o
c o mp or ta me n to q ue s e r e x ecu ta do p or u m t hr ea d s epa r ad o .
Exemplo
public class TesteThreads2 {
public void executa() {
Linha l = new Linha();
Linha2 l2 = new Linha2();
Thread t = new Thread(l);
Thread t2 = new Thread(l2);
t.setName("um");
t2.setName("dois");
t.start();
t2.start();
}
public static void main(String[] args) {
new TesteThreads2().executa();
}
}
class Linha implements Runnable {
public void run() {
for(int x=0;x<2;x++) {
System.out.println("1 " + Thread.currentThread().getName());
}
}
}
class Linha2 implements Runnable {
public void run() {
for(int x=0;x<2;x++) {
System.out.println("2 " + Thread.currentThread().getName());
}
}
}

63

E STADOS DE UMA T HREAD


O thea d pod e es ta r em c i nco esta dos :

NOVO
S i gn i f ica qu e o t hr ead f o i ins t anc ia do , mas ai nd a n o f o i e xecuta do o m to do s t ar t() .
E l e c ons id era do ina ti v o

EXECUTVEL
Es te es tado q uan do a thr ea d es t es pe ran do p ara s er e xecu tada pe la J VM. A
p r i me ir a v ez q ue e n tr a n es te es t ad o n a c ha ma da a o m to do s tar t() .

EXECUO
Es te es ta do qua ndo o thre ad e s t s endo e xec u tado . Somen te o age nda dor po de
e fe tivamente c oloc- lo nes te es ta do .

ESPERA/BLOQUEIO/SUSPENSO
Aind a n o es t no es ta do e xecu t vel, mas p ode ra oc orr er e m br eve .

I N AT I V O
U m thre ad es t ina tivo qua ndo o se u m todo r un( ) fo i co ncluido .

I MPEDINDO A EXECUO DE UMA THREAD


M T O D O S L E E P ()
P o dem os uti l iz a r o m t odo es tt i c o s lee p ( lo ng n ) pa r a p ausa r a e xec u o d e um a
thr ea d por n milise gu ndos . U tiliza mos es te m tod o q uan do que remos desac elerar a
e xecu o de uma threa d .

Thread.sleep(1000)
Exemplo:
public class TesteThreads3 {
public void executa() {
Linha l = new Linha();
Linha2 l2 = new Linha2();
Thread t = new Thread(l);
Thread t2 = new Thread(l2);
t.setName("um");
t2.setName("dois");
t.start();
t2.start();
}
public static void main(String[] args) {
64

new TesteThreads3().executa();

class Linha implements Runnable {


public void run(){
for(int x=0;x<200;x++) {
System.out.println("1 " + Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch( InterruptedException e ) { }
}
}
class Linha2 implements Runnable {
public void run() {
for(int x=0;x<200;x++) {
System.out.println("2 " + Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch( InterruptedException e ) { }
}
}

M T O D O Y E L D ()
O m t odo y e ld uti l iz a do para d ar a v ez n a e x ecu o p ar a um a th r ea d c o m a mes ma
p r i or i dad e . P a r a c on f ig urar mos a p r i or id ade d e u ma t hr e ad u t il iza mos o m to do
se t Pr io ri t y()

M T O D O S E T P R I O R I T Y ()
Ajus ta a pro pr ied ade d e e xec uo de u ma th rea d()
As thr ea ds pod em te r pr ior id ad es d e e xec uo entre Th rea d.MIN _ PR IOR IT Y a t
MAX_PR IOR IT Y. Ge ralmen te es tes n me ros var ia m de 1 a 10 , de ac ordo co m a J VM e m
us o .
Exemplo:
t = new Thread();
t.setPriority(8);

O M T O D O J O I N ()
O m to do jo in() per mite a dic io na rmos uma thr ead ao fina l d e ou tr a . Seu us o es t
ass ociado a poss ib ilid ade de te rmos que es per ar o fina l d e uma threa d X p ara s ent o
i n ici ar m os u ma th r ea d Y .
Exemplo:
Thread t = new Thread();
t.start();
t.join();
O c d igo ac ima pe ga a thea d que es t e m e xecu o e a dic io na ao fin al da th rea d t.

S I N C R O N I Z A O
O uso d e th r ea ds nos p er m i te a e x ecu o de t ar e fas s im u l tan eame n te .
M as , m u i tas v ez es , e x is t em t ar e fas que n o que r em os q ue s e jam e x ecu ta das
s imultane amen te.
Par a de fin ir qu e do is o u ma is m todos o u b loc os de c digo n o de vem ser e xec u tad os
a o m es mo t e mp o pe lo m es m o obj e to , u ti l iz an do a pa lav r a c ha v e s ync r on iz ed .
65

Exemplo:
syncronized void beber() {
int cerveja;
int boca;
cerveja = 24;
boca = cerveja;
}
syncronized void dirigir() {
ligarVeiculo();
engatarMarcha();
largarEmbreagem();
acelerar();
try{
ultrapassar();
}
catch(Acidente e) {}
}

I NTERAO COM AS T HREADS


Os m todos w ait( ) , no tify() e no tifyAll( ) pe rmite- nos te r co n trole s obr e a s uspe nso
d as th r ea ds que es t o e m e x ecu o . D e ve m s ome n te s er u t il iza dos de n tr o de m tod os
o u b locos d e c d ig o s ync hr o niz e d .

M T O D O W AI T ()
I n dic a qu e o t hr e ad a ti v o d e ve esp er ar a t q ue o mes m o s e ja noti f ic ado .

M T O D O N O T I F Y ()
No tifica o th rea d qu e fo i sus penso p wa it() co locan do -o e m es ta do e xecu t vel.

M T O D O N O T I F Y A L L ()
No tifica tod os os thr ea ds qu e fora m sus pensos c olocan do- os em es tado e xecu t ve l .
Exemplo:
public class A {
public static void main(String [] args) {
B b = new B();
b.start();
synchronized(b) {
try {
System.out.println("Esperando b terminar");
b.wait();
} catch(InterruptedException e) {}
System.out.println("Total: " + b.total);
}
}
}
class B extends Thread {
int total;
public void run() {
synchronized(this) {
for(int i=0;i<100;i++) {
66

total += i;
}
notify();
}
}
}
Tipo Enumerados

C OLEES
As pr inc ip ais in ter faces q ue imple me n tam co le es so :

LIST
u m con jun to qu e admite e lemen tos re pe tid os

P R I N C I P AI S M T O D O S
Mtodo

Descrio

Assinatura

add()

Adiciona um objeto a lista

void add()

get()

Retorna o objeto da lista pelo ndice

object get(int indice)

remove()

Remove um objeto da lista pelo ndice

void remove(int indice)

indexOf()

procura um objeto na lista

int indexOv(Object o)

Exemplo:
import java.util.*;
import java.util.Collections;
public class TesteList{
public static void main(String[] args){
List<String> lista;// repeticoes permitidas e ordenadas
lista = new ArrayList<String>();
lista.add("1");
lista.add("4");
lista.add("3");
lista.add("2");
System.out.println(lista.get(1));
System.out.println(lista);
Collections.sort(lista);
System.out.println(lista);
}
}

67

SET
Co njun to qu e n o admite e lemen tos re pe tid os
Mtodo

Descrio

Assinatura

add()

Adiciona um objeto no conjunto

void add()

contains()

Procura no conjunto

boolean contains(Object e)

remove()

Remove um objeto do conjunto pelo ndice

void remove(int indice)

clear()

Limpa o conjunto

void clear()

Exemplo:
import java.util.*;
import java.util.Collections;
public class TesteSet{
public static void main(String[] args){
TreeSet<String> conj;
conj = new TreeSet<String>();
conj.add("1");
conj.add("4");
conj.add("1"); // nao adiciona, pois ja existe
conj.add("3");
conj.add("2");
System.out.println(conj.contains("3"));
System.out.println(conj.headSet("3"));
System.out.println(conj.tailSet("3"));
System.out.println(conj.contains("9"));
System.out.println(conj);
}
}

M AP
Map um co njun to de par es cha ve /va lor .
Mtodo

Descrio

Assinatura

put()

Insere um par chave-valor

void put(K chave,V Valor)

get()

Retorna o valor da chave associada

V get(K chave)

containsKey()

Retorna true se contm a chave

boolean containsKey(Object chave)

containsValue()

Retorna true se contm o valor

boolean containsValue(Object valor)

Exemplo:
import java.util.*;
import java.util.Collections;
public class TesteMap{
public static void main(String[] args){
Map<String,Integer> mapa;
mapa = new TreeMap<String,Integer>();
mapa.put("um",1);
mapa.put("dois",2);
mapa.put("tres",3);
68

mapa.put("quatro",4);
System.out.println(mapa.get("tres"));
System.out.println(mapa.get("um"));
System.out.println(mapa);
}
}

69

Potrebbero piacerti anche