Buscar

Apostila Programação I - Java básico

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

FVC – FACULDADE VALE DO CRICARÉ 
LINGUAGEM DE 
PROGRAMAÇÃO I 
Do fluxograma a programação em Java 
 
Douglas Tybel 
28/10/2010 
 
 
Data Versão da Revisão Descrição da Revisão Autor 
11/11/2012 1.0 Alunos que auxiliaram na revisão: 
Isis Pereira 
Douglas Tybel 
08/12/2012 1.1 Código fonte do exemplo com 
JCombobox adicionado. 
Douglas Tybel 
 
Este documento contém material desenvolvido pelo professor Douglas Tybel da Faculdade 
Vale do Cricaré em São Mateus/ES. Esta apostila tem como objetivo facilitar o ensino da 
disciplina com base em muitos livros e experiência do professor. 
 
2 
 
O QUE É JAVA ? .......................................................................................................................... 3 
VARIÁVEIS – ENTENDA COMO DECLARAR ............................................................................ 5 
ESCOPO – VISIBILIDADE DE SEU CÓDIGO ....................................................................................... 5 
MODIFICADOR STATIC .................................................................................................................. 6 
TIPOS DE DADOS – COMO DISTINGUIR ........................................................................................... 7 
DECLARAÇÃO DE VARIÁVEL ........................................................................................................... 9 
FLUXOGRAMA - TRANSFORME FLUXOGRAMA EM CODIGOS JAVA ................................ 10 
SEQUENCIAL – CÓDIGOS COMUNS DOS PROCESSAMENTOS .......................................................... 10 
CONTROLE DE DECISÃO – COMANDO IF ...................................................................................... 11 
CONTROLE DE REPETIÇÃO – COMANDO WHILE ............................................................................ 13 
CONTROLE DE REPETIÇÃO – COMANDO FOR .............................................................................. 14 
CONTROLE DE REPETIÇÃO – COMANDO SWITCH ....................................................................... 15 
EXEMPLOS DE FLUXOGRAMAS – INTERAGINDO COM SWINGS NETBEANS .................. 16 
FLUXOGRAMA PARA HABILITAR CAMPO – COMPONENTE JCHECKBOX ............................................ 16 
FLUXOGRAMA MASCARA CPF E CNPJ – COMPONENTE JFORMATTEDTEXTFIELD .......................... 17 
FLUXOGRAMA PREENCHER COMBO COM ANOS – COMPONENTE JCOMBOBOX ............................... 21 
PRINCIPAIS COMPONENTES SWINGS - MÉTODOS COMUNS ............................................ 24 
RÓTULO – O COMPONENTE JTEXTFIELD ..................................................................................... 25 
BUTTON – O COMPONENTE JBUTTON .......................................................................................... 25 
CAIXA DE COMBINAÇÃO – O COMPONENTE JCOMBOBOX .............................................................. 28 
CAMPO FORMATADO – O COMPONENTE JFORMATTEDTEXTFIELD ................................................. 29 
TABELA – O COMPONENTE JTABLE ............................................................................................. 30 
FORMULÁRIO – O COMPONENTE JFRAME .................................................................................... 32 
A CLASSE JOPTIONPANE – INTERAGINDO COM USUÁRIO ............................................... 33 
BIBLIOGRAFIA........................................................................................................................... 36 
 
 
3 
 
O QUE É JAVA ? 
 
A Sun Microsystems, uma empresa mundialmente conhecida no ramo de servidores de rede de 
computadores, tentou desenvolver uma plataforma de programação para hardwares. A ideia 
era criar um Controle Remoto Universal que poderia, à distância, controlar todos os aparelhos 
eletrodomésticos e computadores de uma residência, alem de permitir outras facilidades. 
Dentro da Sun ficou conhecida como “Projeto Green”, iniciado em dezembro de 1990 por 
Patrick Naughton, Mike Sheridan e James Gosling. (ANSELMO, 2005) 
Para o nome da linguagem conta-se que a equipe de desenvolvimento visitou uma cafeteria 
local, o nome “Java” (cidade de origem de um tipo de café importado) foi sugerido e “pegou”. 
As características da linguagem Java são: 
• Orientada a Objetos – Pode-se aplicar todos os conceitos de Orientação a Objetos 
conhecidos, incluindo abstração, herança, polimorfismo, encapsulamento, classes e 
reuso. 
• Robusta e Segura – Suporte a múltiplas camadas e execuções dos processos 
envolvidos (multithreading) e definição de classes que protegem o SO, além do 
ambiente que a além do ambiente que a linguagem está rodando. 
• Distribuída e Portátil – Práticas de processamento de objetos de forma distribuída, ou 
seja, um objeto pode estar em uma máquina e ser acessado por outra à distancia. A 
linguagem pode ser executada de celulares a mainframes. 
• Arquitetura Neutra – Baseada nos princípios do C++, deixou de lado coisas como 
múltipla herança para simplicidade do código escrito, possui nas classes somente uma 
porta de entrada. 
• Interpretada, mas de Alta Performance – Não gera os chamados executáveis, 
rodando sobre a Máquina Virtual Java(JVM) com interpreação dos Bytecodes. 
• Simples – Possui apenas seis comandos: dois de decisão, três de repetição e um para 
proteção do código. 
Mas tome cuidado, pois a linguagem Java é totalmente case sensitive, ou seja, diferencia os 
caracteres maiúsculos dos minúsculos. Desse modo, uma classe com o nome Math é 
totalmente diferente de uma classe com o nome math. 
Os arquivos Java tem extensão “.java” e dentro desta, segue o seguinte escopo: 
1. Definição do seu pacote; 
2. Definição de Importações de outros pacotes; 
3. Definição da classe; 
Um pacote é um conjunto de classes do mesmo tipo que podem ser agrupadas de modo a 
garantir diferentes formas de acesso, por exemplo: Pacote de Classes da Contabilidade, 
Pacote de Classes Utilitárias, Pacote de Classes do Financeiro. Nestes pacotes podemos ter 
dados restritos a quem pertence exclusivamente a ele. (ANSELMO, 2005) 
Na linguagem Java, utiliza-se a palavra-chave package para definir o pacote da seguinte 
maneira: 
Package contabilidade; 
Toda instrução em linguagem Java deve terminar obrigatoriamente com um ponto-e-vírgula(;). 
Veja na Figura1 – Como o Java funciona: 
 
4 
 
 
Figura 1 - Como o Java funciona 
Fonte: Própria(2012) 
 
O código fonte do projeto Java é salvo em arquivos com extensão “.java” com linguagem de 
alto nível, isso quer dizer que os homens conseguem entender. Seguindo a Figura 1, o próximo 
passo é transformar esse código em uma linguagem de baixo nível para extensão “.class”, 
neste caso significa que os códigos “.java” foram compilados para outros que as máquinas 
entendam. Os chamados Byte Code foram a grande ideia do Java, isso talvez seja o motivo de 
seu sucesso, uma vez que possibilita sua portabilidade entre plataformas. Entenda a ideia 
posta aqui, isso porque em qualquer que seja a plataforma, basta instalar Java Vitual 
Machine(JVM). 
O código está em Byte Code e apenas JVM podem lê-las, isso significa que essa maquina 
virtual Java pode ser instalada em qualquer plataforma e ainda sim entender os Byte Code 
executando aplicativos Java normalmente. 
Para facilitar o aprendizado do Java, é imprescindível que o estudante tenha conhecimento de 
fluxogramas, pois deste modo a transformação da lógica para o código Java fica ainda mais 
simples. 
 
 
5 
 
VARIÁVEIS – ENTENDA COMO DECLARAR 
 
Seguindo a linguagem de programação Orientada a Objetos, consideramos que os objetos tem 
como parte integrante a sua totalidade os seus atributos. Esses atributos nada mais são que 
variáveis. A declaração de uma variavel para atributo é bem simples, vejamos alguns dos tipos 
e como declará-las. 
Os atributos são criadosa partir de um tipo primitivo, este poderá ser em sua maioria: 
• boolean – Tipo lógico com valores true ou false; 
• char – Tipo caractere com valores entre 0 a 216 -1; 
• byte – Tipo inteiro com valores entre -27 a 27 -1; 
• short – Tipo inteiro com valores entre -231 a 215-1; 
• int – Tipo inteiro com valores entre -231 a 231 -1; 
• long – Tipo inteiro com valores entre -263 a 263 -1; 
• float – Tipo numérico flutuante (32 bits); 
• double – Tipo numérico flutuante (64 bits) 
 
Escopo – Visibilidade de seu código 
 
Os atributos e variáveis fazem parte de um escopo que é utilizado para definir o tipo de acesso 
que terá determinado atributo, classe ou objeto. Uma parte ficará totalmente escondida e 
restrita, e a outra servirá apenas ao pacote de classes que a classe que o definiu pertence, e 
uma última parte tem seu acesso tratado com as seguintes palavras-chave: 
• public: Qualquer classe, de qualquer pacote, tem acesso a este. 
• protected: Apenas as classes do mesmo pacote possuem acesso a este. 
• private: Apenas a própria classe poderá acessar este. 
Veja como definir variáveis ou atributos com escopo: 
public int c; //Atributo público de nome c do tipo inteiro. 
protected double b; //Atributo protegido de nome b do tipo double. 
private boolean a; //Atributo particular de nome a do tipo boolean 
A sintaxe completa da definição de um atributo ou declaração de uma variável em Java é: 
escopo tipoPrimitivo nomeVariavel = valorInicial; 
ou seja, poderíamos ter o seguinte conjunto de atributos ou variáveis: 
boolean a = false; 
char b = ‘A’; 
byte c = 1; 
short d = 2; 
int e = 3; 
long f = 4L; 
float g = 1.0F; 
double d = 1.0; 
 
 
6 
 
Uma variavel também pode ser declarada sem um valor inicial, como por exemplo: 
boolean a; 
char b; 
 
Só depois poderia ser atribuído valor, desta forma por exemplo: 
boolean a; 
boolean = true; 
ou 
char b; 
char b = ‘A’; 
 
Ambas as formas estão corretas, como usá-las dependerá da necessidade do programador. 
 
Modificador Static 
 
Existem as variáveis locais e globais, uma vez que o que diferencia as duas é que a local só 
existe dentro de seu fluxo(função) e a global existirá para todos as funções. 
Para acessar uma dessas variáveis quando se esta em outro formulário ou função, é 
necessário criar o objeto no qual a mesma esta inserido. Mas existe ainda o modificador 
“Static”. A variável com Static é chamada de: “variável estática” e pode ser acessada 
diretamente pelo nome da classe e não precisa de qualquer objeto. 
Sintaxe: <nome da classe>.<nome da variável> 
Veja um exemplo de declaração de uma variável estática: 
public static int codTopico; 
Vamos supor que esta declaração esteja em um frame chamado: jFReuniao que será 
responsável por gerenciar reuniões e, nela existe uma tabela com todos os tópicos desta 
reunião. Ao clicar em um dos tópicos, a variável codTopico é atribuído o código do tópico 
selecionado. 
Ao clicar em um botão que chama o formulário de tópicos, queremos filtrar pelo tópico recém 
clicado, para isso temos esta informação armazenada na variável publica e estática 
codTopico. No formulário de Históricos, no entanto para acessar essa variável, não é 
necessário criar nenhum objeto, apenas acessá-lo diretamente conforme código abaixo: 
jFReuniao.codTopico; 
Em que JFreuniao é o <nome da classe> e codTopico seria o <nome da variável>. 
 
 
7 
 
Tipos de dados – Como distinguir 
 
As informações tratadas em um algoritmo podem ser classificadas em dois tipos: 
• Constantes: Não sofrem alterações com o decorrer do fluxo, como por exemplo, PI = 
3,1416. 
• Variáveis: Há possibilidade de serem alteradas em algum instante no decorrer do fluxo. 
Exemplo: Uma nota, valor, data, saldo e etc. 
Diante das situações de programação, as linguagens já têm como base os tipos primitivos, 
segundo (BERG & FIGUEIRÓ, 2006, p. 33), são: 
• Numérico – toda informação numérica que pertença ao conjunto dos números relativos 
(negativos, nulos, positivos), por exemplo, a quantidade de alunos de uma sala. Bem 
como toda a informação numérica que pertença ao conjunto dos números reais 
(negativos, positivos, nulos), por exemplo, o preço de um produto. 
• Caracter – toda a informação composta por um ou mais caracteres alfanuméricos 
(0..9,A..Z,a..z) e/ou caracteres especiais (#,/,$,%,*,?,~,>,!,@...). 
Obs.: o espaço é considerado caracter especial. 
• Lógico – toda a informação que pode ser assumir apenas duas situações (biestável, 
ou seja, dois estados). Exemplo: verdadeiro ou falso, aberto ou fechado. 
Existem alem dos tipos primitivos, a possibilidade de declarar variáveis de classe, isso é muito 
comum nas linguagens atuais, uma vez que, possibilita toda uma estrutura da classe através 
da variável, por exemplo: Em Java o tipo String é uma classe que substitui o uso de do tipo 
primitivo caracter. Se uma variável é declarada do tipo primitivo caracter, o seu conteúdo 
contempla o escopo informado em caracteres alfanuméricos, especiais e só, já a classe String 
possibilita a manipulação da informação lá contida, isso através dos métodos próprios da 
classe String, veja o exemplo deste uso: 
Transformar o conteúdo da variável em minúscula: 
• String email = "DTYBEL@yahoo.com.br"; 
• email.toLowerCase(); 
A variável “email” após a execução da segunda linha será convertida totalmente para 
minúscula, deste modo, sua saída será: dtybel@yahoo.com.br 
Continuando a mesma linha de raciocínio, para identificar um tipo de dado classe basta 
observar que a primeira letra é maiúscula, isso porque, as classe têm as inicias maiúsculas, 
veja algumas classes que não são tipos primitivos em Java: String,Integer,Float etc. Estas 
classes são chamadas de “Wrapper Class” 
Segundo (ANSELMO, 2005, p. 33), o principal método de utilização dos numéricos é o 
parseTipo.Então, convertendo uma String para os diversos tipos, por exemplo, teríamos: 
 
byte a = Byte.parseByte(“1”); 
short b = Short.parseShort(“1”); 
int c = Integer.ParseInt(“1”); 
long d = Long.ParseLong(“1”); 
float e = Float.parseFloat(“1”); 
double f = Double.ParseDouble(“1”); 
 
 
8 
 
O autor mostra acima como converter o texto “1” em diversos tipos de valores através do 
método parseTipo das Wrapper Class. 
Para converter tipos primitivos, basta informar entre parênteses usando o método conhecido 
como “Casting”, seu novo tipo de retorno. 
Para integer: 
 
long g = 10L; 
int i = (int) g; 
Para Double: 
double d = 10.99; 
byte b = (byte)d; 
 
Uma das classes mais importantes para a linguagem Java é a classe String.Com ela é 
possível escrever objetos que recebem conjuntos de caracteres da seguinte maneira: 
String a = “Curso ADS 2012/2”; 
A String é uma classe, pois ela pode ser associada a diversos métodos para a manipulação do 
valor que é atribuído em si. Tais como: 
• concat(Str) – Concatena Str com o objeto; 
• equals(Str) – Compara se duas Str são idênticas; 
• length() – Retorna o tamanho do objeto; 
• replace(ch1,ch2) – Troca de caracteres; 
• toLowerCase() – Letras em minúscula; 
• toUpperCase() – Letras em maiúscula; 
• trim() – Retira os espaços em branco. 
Observe o exemplo 1: 
O objetivo é declarar uma variável, atribuir um texto e contar quantos caracteres existem, 
segue abaixo o código: 
 //Declarar variável a com Nome 
 String a = "Douglas Tybel"; 
 //Declarar variavel quant_caracteres para receber a quantidade 
 int quant_caracteres = a.length(); 
 //Imprimir na tela o resultado 
 System.out.println("A quantidade de caracteres é "+ quant_caracteres); 
 
Saída: 
A quantidade de caracteres é 13 
Neste momento seu retorno será: 13, uma vez que o espaço também será contado. 
 
 
 
9 
 
Observe o exemplo 2: 
O objetivo é declarar uma variável, atribuirum texto e substituir a letra “L” por “R”, segue abaixo 
o código: 
 //Assuma que o Cebolinha dos quadrinhos disse a frase abaixo: 
 String a = "Adolo solvete de molango."; 
 //Substitui na variável a o L por R e atribui o novo valor a variavel a 
 a = a.replace("l", "r"); 
 //Imprimir na tela o resultado 
 System.out.println(a); 
Saída: 
Adoro sorvete de morango. 
 
Declaração de variável 
 
Para que certa informação fique armazenada temporariamente e que possibilite acesso rápido, 
por sua vez, tendo a possibilidade de alteração e manipulação, usamos as variáveis. 
Segundo (BERG & FIGUEIRÓ, 2006, pp. 34-35), a declaração de uma variável consiste em: 
• nome que a diferencia das demais; 
• tipo de dado associado, que indica o tipo de informação que poderá ser armazenada 
na variável; 
• conteúdo, que é o dado guardado na variável; 
• endereço, que a localiza na memória; 
 
O autor faz observações relevantes sobre as variáveis: 
1) O nome de uma variável é único em um algoritmo. 
2) O conteúdo de uma variável poderá ser um dado todo tipo usado na sua criação. 
3) O conteúdo de uma variável é substituído por outro conteúdo que lhe venha a ser 
atribuído. 
4) O uso do nome de uma variável em uma expressão significa o uso do seu conteúdo 
(naquele momento) dentro da expressão. 
5) O uso de um conteúdo de variável em uma expressão não modifica seu valor. 
 
Para a declaração da variável, de modo geral, basta definir seu tipo e nome, onde se tem certa 
liberdade na nomenclatura, todavia, existem alguns limites básicos a serem observados para 
que sua variável não seja confundida com comandos internos. 
Cada linguagem de programação tem suas próprias regras para formação do nome de uma 
variável, de modo geral, a regra básica é: Nome de uma variável pode ser composto por letras 
sem espaço, dígitos e até mesmo o underline (_), sendo que o primeiro caractere deve ser uma 
letra. 
 
 
10 
 
FLUXOGRAMA - TRANSFORME FLUXOGRAMA EM CODIGOS 
JAVA 
 
Sequencial – Códigos comuns dos processamentos 
 
Os processamentos são representados em fluxograma por um retângulo. Este será executado 
em sequencia de cima para baixo do ponto de partida até o fim sem desvios. 
Em um processamento normalmente ocorre uma declaração de variável e uma atribuição. 
 
Figura 2 - Exemplo algoritmo sequencial 
Fonte: Própria (2012) – Ferramenta: BizAgi 
 
Para melhor entendimento, assuma o exemplo que uma variável “data” receberá o retorno de 
uma função para obter a data de hoje, assim seu processamento seria: 
 
 
 
Podemos identificar no exemplo acima uma declaração e atribuição. 
Em processamentos também podem ocorrer cálculos e atribuições apenas, pois uma variável 
criada no processamento de cima estará disponível para o processamento de baixo, com 
ressalva para subfluxos, uma vez que estes devem receber seus parâmetros como variáveis de 
entrada. 
 
Obter a data de 
hoje 
1. Date hoje; 
2. hoje = obterDataHoje(); 
 
11 
 
Controle de decisão – Comando IF 
 
Fluxograma: Comando em Java 
 
 
 
if ( condição ){ 
 
 Comando “TRUE” se verdadeiro; 
 
} else { 
 
 Comando “ELSE” se falso; 
 
} 
 
 
if ( condição ){ 
 
 Comando 1 “TRUE” se verdadeiro; 
 Comando 2 “TRUE” se verdadeiro; 
 
 
} else { 
 
 Comando 1 “ELSE” se falso; 
 Comando 2 “ELSE” se falso; 
 
} 
 
 
if ( condição ){ 
 
 Comando 1 “TRUE” se verdadeiro; 
 Comando 2 “TRUE” se verdadeiro; 
 
 
} 
 
 
12 
 
 
float n1 = 7; 
float n2 = 9; 
 
float media; 
media = (n1+n2)/2; 
 
if ( media > 7 ) { 
 
System.out.println(“Aprovado”); 
 
} else { 
 
System.out.println(“Reprovado”); 
 
 
} 
 
Este é um dos comandos mais fáceis, acredita-se que seja por isso mesmo que a maioria das 
pessoas perde sua lógica, pois o maior número de erros ocorre exatamente aqui. Alguns 
detalhes devem ser drasticamente observados: os parênteses envolvendo uma condicional são 
obrigatórios, as chaves para os comandos só são obrigatórias em caso de mais de uma 
instrução, porém é ideal colocá-las em qualquer caso. (ANSELMO, 2005, p. 38) 
 
 
13 
 
Controle de Repetição – Comando While 
 
Este comando é responsável pelo chamado “Laço de Repetição”, isto é, repetirá todas as 
instruções que estiverem em torno deste repetidas vezes, obedecendo a uma determinada 
condição. Possui a seguinte estrutura: (ANSELMO, 2005) 
Fluxograma: Comando em Java 
 
 
 
while ( condição ){ 
 
 Comando se verdadeiro a repetir; 
 
} 
 
 
 
 
int quantChutes = 0; 
int chutesPermitidos = 10; 
 
 
while ( quantChutes <= ChutesPermitidos ){ 
 
 quantChutes++; 
 System.out.println(“Total é “+ quantChutes); 
 
} 
 
 
O resultado do fluxo acima seria: 
Total é 1 
Total é 2 
... 
Total é 10. 
 
 
 
14 
 
Controle de Repetição – Comando FOR 
 
Esse comando é considerado do tipo repetição contada, uma vez que exatamente por termos o 
seu total domínio (tanto quando ele começa como quando ele termina). (ANSELMO, 2005) 
Controlaremos sua repetição através de uma variável que será o contador, uma vez que 
deveremos iniciá-la com valor para um ponto de partida e a condição será o determinante para 
o fim do loop. 
Fluxograma: Comando em Java 
 
 
 
for ( inicial; condição; incremento ){ 
 
Comando 1 se condição for verdadeira a 
repetir; 
 
Comando 2 se condição for verdadeira a 
repetir; 
 
 
} 
 
 int quantParcelas = 3; 
 
 
for (int parcela = 0; parcela <= 
quantParcelas; parcela++ ){ 
 
System.out.println(“Enviando...”); 
 
System.out.println(“Parcela ”+ parcela + “ 
foi enviada com sucesso.”); 
 
 
} 
 
 
15 
 
Controle de Repetição – Comando SWITCH 
 
Pode-se dizer que este comando seria o substituto para um laço determinado de comandos IF. 
Uma vez que tomamos caminhos diferentes a cada escolha pré-definida. Sua sintaxe abrange 
a seguinte estrutura: 
 
Fluxograma: Comando em Java 
 
 
 
switch ( atributo ) { 
 
case valor1: 
 Comando 1; 
 break; 
case valor2: 
 Comando 2; 
 break; 
 
case valor3: 
 Comando 3; 
 break; 
 
case valor4: 
 Comando 4; 
 break; 
default: 
 Comando caso nenhum. 
 
} 
 
 
int num = 2; 
 
switch ( num ) { 
 
case 1: 
 System.out.println(“É impar”); 
 break; 
 
case 2: 
 System.out.println(“É Par”); 
 break; 
 
default: 
 System.out.println(“Número diferente 
de 1 e 2”); 
 
} 
 
 
16 
 
EXEMPLOS DE FLUXOGRAMAS – INTERAGINDO COM SWINGS 
NETBEANS 
 
Fluxograma para habilitar campo – Componente jCheckBox 
 
Crie no Netbeans um frame com um componente jCheckBox e outro chamado 
JFormattedTextField. O check(jCheckBox1) caso marcado habilitará o campo para o 
lançamento do valor do desconto, caso contrário desabilitará. Veja nas figuras abaixo como 
deve ser feito. 
 
Figura 3 - Tela de desconto parte inicial 
Fonte: Própria (2012) 
Ferramenta: Netbeans 7.0.1 
 
Figura 4 - Tela de desconto parte final 
Fonte: Própria (2012) 
Ferramenta: Netbeans 7.0.1 
 
Abaixo na Figura 4 – Fluxograma para habilitar campo valor de desconto, mostra a tradução do 
fluxo para Java. 
 
Figura 5 - Fluxograma para habilitar campo valor de desconto 
Fonte: Própria (2012) – Ferramenta: BizAgi 
 
CÓDIGO FONTE: 
 
if (jCheckBox1.isSelected()){ 
 jFormattedTextField1.setEnabled(true); 
 } 
 else { 
 jFormattedTextField1.setEnabled(false); 
 } 
 
Fontes 1 - Habilitar campo desconto 
 
17 
 
Fluxograma mascara CPF e CNPJ – Componente 
JFormattedTextField 
 
Este exemplo segue da seguinte estrutura: Deacordo com a escolha do “Tipo da pessoa” será 
alterado a mascara de um componente swing que será passado como variável de entrada. 
Este fluxo servirá para todo o projeto, uma vez que não depende de componentes. 
 
Figura 6 - Tela mascara parte inicial 
Fonte: Própria (2012) 
Ferramenta: Netbeans 7.0.1 
 
Figura 7 - Tela mascara parte final 
Fonte: Própria (2012) 
Ferramenta: Netbeans 7.0.1 
 
Pare reproduzir esse exemplo, siga os passos: 
1. Crie um novo formulário JFrame; 
2. Adicione um componente não visual chamado: Grupo de botões (
) conhecido como buttonGroup. Devido sua característica não 
visual, para acessá-lo vá até a parte inferior esquerda no “Inspetor” no grupo Outros 
componentes. 
3. Adicione dois componentes Botão de opção ( ) conhecido em 
seu código como JCheckbox. Na sua propriedade associe o atributo “buttonGroup” 
ao buttonGroup1 que já está no formulário, o mesmo para o segundo botão de opção. 
4. Adicione um componente Rótulo ( ) conhecido em seu código como 
JLabel. Na sua propriedade “text” rotule-o com “CPF ou CNPJ”. 
5. Adicione um componente Campo formatado ( ) conhecido em 
seu código como JFormattedTextField. Na sua propriedade em formattedFactory 
defina uma mascara, na categoria moeda escolha o formato padrão. 
 
 
 
 
18 
 
 
Figura 8 - Fluxo mascara CPF e CNPJ 
Fonte: Própria (2012) – Ferramenta: BizAgi 
 
CÓDIGO FONTE: 
 
public void setMascara(String tipoPessoa,JFormattedTextField documento) throws 
ParseException{ 
 
//Limpar seu conteúdo 
documento.setValue(null); 
 
//É igual a PJ ? 
if (tipoPessoa.equals("PJ")){ 
 
//Mascara CNPJ 
documento.setFormatterFactory(new 
javax.swing.text.DefaultFormatterFactory(new 
javax.swing.text.MaskFormatter("##.###.###/####-##"))); 
 
}else{ 
 
//Mascara CPF 
documento.setFormatterFactory(new 
javax.swing.text.DefaultFormatterFactory(new 
javax.swing.text.MaskFormatter("###.###.###-##"))); 
 
} 
//Lançar foco para o campo CPF ou CNPJ 
documento.grabFocus(); 
 
} 
Fontes 2 - Fluxo mascara CPF ou CNPJ 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
 
19 
 
O código fonte do fluxograma já foi realizado, sendo assim, será necessário declará-lo nos 
códigos Java. No Netbeans, entre na aba “Código-fonte” role para baixo até encontrar a 
função: “public static void main(String args[])”, seu código virá acima do fluxograma 
principal main, ficando conforme abaixo: 
CÓDIGO FONTE: 
 
����SEU CÓDIGO DEVE SER ESCRITO AQUI.  
 
 /** 
 * @param args the command line arguments 
 */ 
 public static void main(String args[]) { 
 /* Create and display the form */ 
 java.awt.EventQueue.invokeLater(new Runnable() { 
 
 public void run() { 
 new NewJFrame().setVisible(true); 
 } 
 }); 
 } 
Fontes 3 – Onde declarar sua função 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
Lembre-se que mesmo declarando uma função, não acontecerá nada se não ligarmos a um 
evento de componentes swing, uma vez que devemos chamá-la na ação do usuário. Se 
pensarmos bem, o usuário vai clicar no Botão de opção “Física” caso ele deseje informar um 
CPF e no Botão de opção “Jurídica” se for CNPJ, sendo assim, devemos colocar nosso código 
quando o usuário clicar sobre um ou outro Botão de opção, vejamos o fluxo do que devemos 
fazer. 
 
Figura 9 – Fluxograma para o clique do botão de opção 
Fonte: Própria (2012) 
Ferramenta: Ferramenta: BizAgi 
 
 
 
20 
 
1. Obteremos qual dos botões de opção que o usuário clicou para sabermos se é PF ou 
PJ. 
2. Obteremos o componente que devemos lançar a mascara. 
3. Chamaremos nosso fluxograma que agora é função em Java passando o tipo de 
pessoa escolhida e o componente também. 
Vejamos abaixo o código fonte do fluxograma da Figura 9 – Fluxograma para o clique do botão 
de opção: 
CÓDIGO FONTE: 
 
//Obter a escolha do usuário para o tipoPessoa 
String tipoPessoa = buttonGroup1.getSelection().getActionCommand(); 
 
//Obter o componente que levará a mascara 
JFormattedTextField campo = jFormattedTextField1; 
 
try { 
 
//Definir mascara no componente escolhido de acordo com a escolha do tipoPessoa do 
usuário. 
 setMascara(tipoPessoa, campo); 
 
} catch (ParseException ex) { 
 Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); 
 } 
Fontes 4 - Clique do botão de opção 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
 
Para adicionar corretamente o código, siga os passos: 
Clique com botão direito do mouse no primeiro Botão de Opção “Física”, vá até “Eventos” 
escolha “Action” e “ActionPerformed”. Abrirá a área dos fontes relativo ao fluxo do clique desse 
componente, então adicione o código Fonte 4 – Clique do botão de opção. 
Faça o mesmo para o Botão de Opção “Jurídica”, só que no seu código digite: 
CÓDIGO FONTE: 
 
//Simula um clique no Botão de opção Juridica 
 jRadioButton1ActionPerformed(evt); 
 
Fontes 5 - Simula clique no RadioButton 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
Simulando o clique, ou mesmo chamando o ActionPerformed do primeiro Botão de opção, não 
será necessário repetir todo o código outra vez, essa é uma das vantagens da programação 
orientada a objetos, o Reuso. 
 
 
21 
 
Fluxograma preencher combo com anos – Componente 
JComboBox 
 
Este exemplo segue da seguinte estrutura: Um campo para o ano inicial será preenchido assim 
como o ano final e, ao clicar sobre o botão Preencher, o combo “Ano” deve listar todos os anos 
desde o inicial até o final. 
 
Figura 10 - Tela preencher ano parte inicial 
Fonte: Própria (2012) 
Ferramenta: Netbeans 7.0.1 
 
 
 
Figura 11 - Tela preencher ano parte final 
Fonte: Própria (2012) 
Ferramenta: Netbeans 7.0.1 
Para reproduzir esse formulário, siga os passos: 
 
1. Crie um novo formulário JFrame; 
2. Adicione três componentes rótulo para “Ano inicial”,”Ano final” e “Ano”; 
3. Adicione um componente chamado Controle giratório ( ) conhecido como 
JSpinner. Insira tanto para o ano inicial e final; 
4. Adicione um JComboBox para listar os anos; 
5. Adicione um componente Button( ) conhecido como JButton. Servirá para chamar o fluxo 
para preencher o combo. 
6. Desenhe conforme Figura 11 – Tela preencher ano parte final. 
 
 
 
 
 
22 
 
Vejamos o fluxograma para preencher o combo: 
 
 
Figura 12 - Fluxo para preencher o combo com lista de anos 
Fonte: Própria (2012) 
Ferramenta: Ferramenta: BizAgi 
 
Abaixo segue o código fonte do fluxograma preencher o combo: 
CÓDIGO FONTE: 
 
public void preencherCombo (JComboBox combo, int anoInicio, int anoFim){ 
 //Remove todos os itens existentes atualmente no combo 
 combo.removeAllItems(); 
 //Até que o I seja igual ao ano final, adicione I no combo 
 for ( int i = anoInicio; i <= anoFim; i++) { 
 //Adiciona um item ao combo "I" 
 combo.addItem(i); 
 } 
 
} 
Fontes 6 – Fluxo preencher código em códigos Java 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
Caso não saiba ainda como declarar sua função, siga Fontes 3 - Onde declarar sua função. 
Mesmo com a função já declarada, devemos criar o fluxo que ficará no evento ActionPerformed 
do botão “Preencher”, veja abaixo: 
 
23 
 
 
Figura 13 - Fluxo para o botão preencher 
Fonte: Própria (2012) 
Ferramenta: Ferramenta: BizAgi 
 
1. Obteremos o ano inicial digitado pelo usuário no componente Controle giratório. 
2. Obteremos o ano final digitado pelo usuário no componente Controle giratório. 
3. Chamaremos nosso fluxograma que agora é função em Java passando o combo que 
desejamos preencher, o ano incial e ofinal. 
Vejamos abaixo o código fonte do fluxograma da Figura 13 – Fluxo para o botão preencher: 
CÓDIGO FONTE: 
 
 //Obter ano inicial 
 int anoIni = Integer.parseInt( jSpinner1.getValue().toString() ); 
 //Obter ano final 
 int anoFim = Integer.parseInt( jSpinner2.getValue().toString() ); 
 
 //Chamar a função (fluxo) para preencher o combo com a lista de anos. 
 preencherCombo(jComboBox1, anoIni, anoFim); 
 
Fontes 7 – Fonte do fluxo para o botão preencher 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
 
Para adicionar corretamente o código, siga os passos: 
Clique com botão direito do mouse no Botão “Preencher”, vá até “Eventos” escolha “Action” e 
“ActionPerformed”. Abrirá a área dos fontes relativo ao fluxo do clique desse componente, 
então adicione o código Fonte do fluxo para o botão preencher. 
Veja os passos a serem seguidos: 
1. Desenhar o formulário, prestando atenção para colocar os componentes corretamente. 
2. Declarar a função que preenche o combo. Caso ainda não saiba como realizar essa 
tarefa, veja os Fontes 3. 
3. No evento clique do botão preencher, insira o Fonte do fluxo para o botão preencher. 
Resultado: 
 
24 
 
 
Fontes 8 – Resultado do fluxo preencher combo 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
PRINCIPAIS COMPONENTES SWINGS - MÉTODOS COMUNS 
 
Conheceremos a partir de agora, alguns dos componentes swings mais usados e seus 
métodos mais comuns. No Netbeans na parte superior direita, podemos localizar a Paleta de 
componentes, neste sentido, existem alguns grupos de componentes e, estudaremos o grupo 
“Controles Swing”, uma vez que contem os mais comuns componentes usado. 
Abaixo segue a figura com todos eles: 
 
Figura 14 - Controles Swing 
Fonte: Própria (2012) 
Ferramenta: NetBeans 7.0.1 
 
25 
 
 
Rótulo – O componente JTextField 
 
JTextField é um componente de peso leve que permite a edição de uma única linha de texto. 
getText 
public String getText() 
Retorna o texto contido no presente TextComponent. Se o documento base é nulo, dar-
se-á um NullPointerException. 
Retorna: 
o texto nele contido 
Erro lançado se nulo: 
NullPointerException - se o documento é nulo 
Exemplo: 
jTextField1.getText(); 
 
setText 
public void setText(String t) 
 
Define o texto do presente TextComponent para o texto especificado. Se o texto é nulo 
ou vazio, tem o efeito de simplesmente apagar o texto antigo. 
Parametros: 
t - o novo texto a ser definido 
Exemplo: 
jTextField1.setText(“Novo texto que desejar”); 
 
Button – O componente JButton 
 
Uma implementação de um "botão". Botões podem ser configurados e até certo ponto 
controlado, por ações. Usar uma ação com um botão tem muitos benefícios além da 
configuração diretamente de um botão. 
 
isEnabled 
public boolean isEnabled() 
 
26 
 
Determina se o componente está habilitado. Um componente habilitado pode 
responder a entrada do usuário e gerar eventos. Componentes são habilitados 
inicialmente por padrão. Um componente pode ser habilitado ou desabilitado, 
chamando seu método setEnabled. 
Retorna: 
true se o componente está habilitado, false caso contrário 
Exemplo: 
If ( jButton1.isEnabled() ) { 
System.out.println(“Está habilitado”); 
}else{ 
System.out.println(“Está desabilitado”); 
} 
 
 
 
27 
 
setEnabled 
public void setEnabled(boolean b) 
Habilita ou desabilita este componente, dependendo do valor do parâmetro b. Um 
componente habilitado pode responder a entrada do usuário e gerar eventos. 
Componentes são habilitados inicialmente por padrão. 
Nota: Desabilitar um componente leve não o impede de receber MouseEvents. 
Parameters: 
b - se for true, este componente é habilitado; caso contrário esse componente está 
desativado 
Exemplo: 
//Para habilitar 
jButton1.setEnabled( true ); 
//Para desabilitar 
jButton1.setEnabled( false ); 
 
setVisible 
public void setVisible(boolean b) 
Mostra ou oculta este componente dependendo do valor do parâmetro b. 
Parâmetro: 
b - Se verdadeiro, mostra este componente; caso contrário, esconde esse componente 
Exemplo: 
//Para deixá-lo visível 
jButton1.setVisible( true ); 
//Para deixá-lo invisível 
jButton1.setVisible ( false ); 
 
 
 
28 
 
Caixa de combinação – O componente JComboBox 
 
Um componente que combina um botão ou o campo editável e uma lista drop-down. O usuário 
pode selecionar um valor na lista suspensa, que aparece na solicitação do usuário. Se você 
fizer a caixa de combinação editável, em seguida, a caixa de combinação inclui um campo 
editável, no qual o usuário pode digitar um valor. 
 
getSelectedIndex 
public int getSelectedIndex() 
Retorna o primeiro item na lista que corresponde o determinado item. O resultado não 
é sempre definido se o JComboBox permite que itens selecionados que não estão na 
lista. Retorna -1 se não houver nenhum item selecionado ou se o usuário especificou 
um item que não está na lista. 
Retorna: 
um inteiro que especifica o item atualmente selecionado, onde 0 especifica o primeiro 
item na lista; ou -1 se nenhum item for selecionado ou se o item selecionado no 
momento não está na lista 
Exemplo: 
//Verificar se algum item foi selecionado 
if ( JComboBox.getSelectedIndex() == -1){ 
System.out.println(“Nenhum item selecionado.”); 
} 
 
removeAllItems 
public void removeAllItems() 
Remove todos os itens da lista de itens. 
Exemplo: 
//Remover todos os item de um combobox 
jComboBox1.removeAllItems(); 
addItem 
public void addItem(Object anObject) 
Adiciona um item para a lista de itens. Este método só funciona se o JComboBox utiliza 
um modelo de dados mutáveis. 
Aviso: Podem surgir problemas de foco e teclado navegação se você adicionar objetos 
de cadeia de caracteres duplicados. Uma solução é adicionar novos objetos em vez de 
String objetos e certifique-se de que o método ToString () é definido. 
 
29 
 
Exemplo: 
 jComboBox1.addItem("Item 1"); 
 jComboBox1.addItem("Item 2"); 
 
Parâmetros: 
anObject - o objeto para adicionar à lista 
 
getSelectedItem 
public Object getSelectedItem() 
Retorna o item atual selecionado. 
Se a caixa de combinação é editável, então esse valor pode não ter sido adicionado da 
caixa de combinação com addItem, insertItemAt ou os construtores de dados. 
Retorna: 
O objeto atual selecionado 
Exemplo: 
//Obter o item selecionado no combo 
System.out.println( jComboBox1.getSelectedItem().toString() ); 
 
Campo formatado – O componente JFormattedTextField 
 
Campos de texto formatado fornecem uma maneira para os desenvolvedores especificar o 
conjunto de caracteres que pode ser digitado em um campo de texto válido. Especificamente, a 
classe JFormattedTextField adiciona um formatador e um valor de objeto para as 
características herdadas da classe JTextField. O formatador traduz o valor do campo texto 
exibe e o texto para o valor do campo. 
getValue 
public Object getValue() 
Retorna o último valor válido. Com base na política de edição da AbstractFormatter isto 
pode não retornar o valor atual. O valor atualmente editado pode ser obtido chamando 
commitEdit seguido de getValue. 
Retorna: 
Ultimo valor válido 
Exemplo: 
//Obter valor do campo 
System.out.println( jFormattedTextField1.getValue() ); 
 
 
30 
 
setFormatterFactory 
public void setFormatterFactory(JFormattedTextField.AbstractFormatterFactory tf) 
 
Define o AbstractFormatterFactory. AbstractFormatterFactory é capaz de retornar uma 
instância de AbstractFormatter que é usado para formatar um valor de exibir, como 
também um aplicando uma política de edição. 
Se você não explicitamente definiuum AbstractFormatterFactory por esse método (ou 
um construtor) um AbstractFormatterFactory e, consequentemente, será usado um 
AbstractFormatter baseiam na classe do valor. NumberFormatter será usado para 
números, DateFormatter será usado para datas, caso contrário será usado 
DefaultFormatter. 
Esta é uma propriedade de JavaBeans vinculado. 
Parâmetros: 
tf - AbstractFormatterFactory usado para instâncias de pesquisa de AbstractFormatter 
Exemplo: 
//Mascara CNPJ 
documento.setFormatterFactory(new 
javax.swing.text.DefaultFormatterFactory(new 
javax.swing.text.MaskFormatter("##.###.###/####-##"))); 
 
Tabela – O componente JTable 
 
A JTable é usado para exibir e editar tabelas bidimensionais regulares de células. 
A classe JTable é utilizada para vizualizar dados em grid no Swing é um dos componentes 
mais complexos desse pacote. Alias o JTable possui até um pacote especial, que contém 
diversas classes para sua utilização: javax.swing.table. A JTable é um componente MVC1: o 
seu trabalho é dividido em 3 partes, veja a mais importante: 
Model: É a parte que cuida dos dados, quem controla e distribui os dados na jtable. É 
implementado pela interface TableModel ( AbstractTableModel e DefaultTableModel ). Ela é 
responsável por fornecedor os dados para a tabela, a qual requisitará os dados através do 
método getValueAt, informando a linha e a coluna. Este método retorna um Object, ou seja, um 
objeto qualquer, que pode ser um Integer, uma String ou outra classe que você tenha 
implementado. 
Vamos neste momento definir uma variável para armazenar a estrutura atual da tabela: 
1. DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel(); 
2. modelo.setNumRows(0); //Limpar as linhas 
Onde modelo receberá os dados atualmente contidos na tabela, como: colunas e linhas. 
 
1
 Model-view-controller (MVC) é um padrão de arquitetura de software que visa a separar a lógica de negócio da lógica de 
apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos. 
 
31 
 
Para inserir uma linha será preciso executar o método addRow: 
modelo.addRow 
Segue abaixo como usá-lo corretamente: 
3. modelo.addRow(new Object[]{ 
“0001”, 
“Douglas”, 
“2799379892” 
}); 
 
4. jTable1.setModel(modelo); 
 
Esse comando adicionará uma nova linha com o conteúdo acima na tabela. 
Obter a primeira coluna da primeira linha selecionada: 
int codTopico = Integer.parseInt(masterTable.getValueAt(masterTable.getSelectedRow(), 
0).toString()); 
 
 
 
32 
 
Formulário – O componente JFrame 
 
setDefaultCloseOperation 
public void setDefaultCloseOperation(int operation) 
Define a operação que vai acontecer por padrão quando o usuário inicia um "close" 
sobre este quadro. Você deve especificar uma das seguintes opções: 
• DO_NOTHING_ON_CLOSE (definido em WindowConstants): não faça nada; 
• HIDE_ON_CLOSE (definido em WindowConstants): Ocultar automaticamente 
o quadro após invocar qualquer registo WindowListener objetos. 
• DISPOSE_ON_CLOSE (definido em WindowConstants): esconder e elimine o 
quadro após invocar qualquer registo WindowListener objetos 
automaticamente. 
• EXIT_ON_CLOSE (definido no JFrame): sair do aplicativo usando o método de 
saída do sistema. Use isto apenas em aplicações. 
O valor é definido como HIDE_ON_CLOSE por padrão. 
Parâmetros: 
operation - a operação que deve ser executada quando o usuário fecha o quadro 
Exemplo(Chamar um formulário JFrame): 
 //Declarar uma variável chamada frame do JFrame ComboAnos 
 jFComboAnos frame = new jFComboAnos(); 
 //Usando a variavel frame que é cópia do formulário, definir como fechará 
 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
 //Reorganizar componentes do formulário 
 frame.pack(); 
 //Centralizar o frame sem nenhum componente relativo (centro) 
 frame.setLocationRelativeTo(null); 
 //Definir o frame como visível para que o usuário possa vê-lo. 
 frame.setVisible(true); 
 
 
33 
 
A CLASSE JOPTIONPANE – INTERAGINDO COM USUÁRIO 
 
JOptionPane torna fácil aparecer em uma caixa de diálogo padrão que solicita aos usuários 
um valor ou informa algo. 
Enquanto a classe JOptionPane pode parecer complexa devido ao grande número de 
métodos, quase todos os usos desta classe são chamadas de uma linha para um dos métodos 
estáticos showXxxDialog mostrados abaixo: 
Nome do método Descrição 
showConfirmDialog Faz uma pergunta de confirmação, como Sim/não/cancelar. 
showInputDialog Tela solicita algum dado digitado pelo usuário. 
showMessageDialog Informar ao usuário sobre algo que aconteceu. 
showOptionDialog A grande unificação dos três acima. 
 
Cada um desses métodos também vem em um valor showInternalXXX, que usa uma estrutura 
interna para manter a caixa de diálogo caixa.Conveniência de vários métodos também foram 
definidos - sobrecarregado versões dos métodos básicos que usam listas de parâmetros 
diferentes. 
Todos os diálogos são modais. Cada método “showXxxDialog” bloqueia o segmento atual até 
que a interação do usuário estiver concluída. 
Parâmetros: 
Os parâmetros para esses métodos seguem padrões consistentes: 
parentComponent 
Define o componente que deve ser o pai dessa caixa de diálogo. Ele é usado de duas 
maneiras: o quadro que o contém é usado como o pai do quadro para a caixa de 
diálogo, e suas coordenadas de tela são usadas na colocação da caixa de diálogo. Em 
geral, a caixa de diálogo é colocada logo abaixo do componente. Este parâmetro pode 
ser nulo, caso em que um padrão Frame é usado como o pai, e a caixa de diálogo será 
centralizada na tela. 
message 
Uma mensagem descritiva para ser colocado na caixa de diálogo. 
 
messageType 
Define o estilo da mensagem. O gerente de aparência pode esquematizar o diálogo 
diferentemente dependendo deste valor e muitas vezes irá fornecer um ícone padrão. 
Os valores possíveis são: 
 
34 
 
• ERROR_MESSAGE 
• INFORMATION_MESSAGE 
• WARNING_MESSAGE 
• QUESTION_MESSAGE 
• PLAIN_MESSAGE 
 
optionType 
Define o conjunto de botões de opção que aparecem na parte inferior da caixa 
de diálogo: 
• DEFAULT_OPTION 
• YES_NO_OPTION 
• YES_NO_CANCEL_OPTION 
• OK_CANCEL_OPTION 
Você não está limitado a este conjunto de botões de opção. Você pode 
fornecer qualquer botões que você quer usando o parâmetro options. 
options 
Uma descrição mais detalhada do conjunto de botões de opção que 
aparecerão na parte inferior da caixa de diálogo. 
icon 
Um ícone decorativo para ser colocado na caixa de diálogo. Um valor padrão 
para este é determinado pelo parâmetro messageType. 
title 
O título para a caixa de diálogo. 
initialValue 
A seleção de padrão (valor de entrada). 
Quando um dos métodos showXxxDialog retorna um número inteiro, os valores possíveis são: 
• YES_OPTION 
• NO_OPTION 
• CANCEL_OPTION 
• OK_OPTION 
• CLOSED_OPTION 
 
Exemplos: 
Mostrar uma caixa de diálogo de erro que exibe a mensagem, 'alerta': 
 
JOptionPane.showMessageDialog(null, "alerta", "alerta", 
JOptionPane.ERROR_MESSAGE); 
 
 
 
 
 
35 
 
Mostrar uma caixa de diálogo de informação interna com a mensagem, 'informações': 
 
JOptionPane.showInternalMessageDialog(frame, "information", 
"information", JOptionPane.INFORMATION_MESSAGE); 
 
Mostrar um painel de informações com as opções sim/não e 'escolher um' da 
mensagem: 
 
JOptionPane.showConfirmDialog(null, 
"choose one", "choose one", JOptionPane.YES_NO_OPTION); 
 
Mostrar uma caixa de diálogo de informação interna com as opções sim/não/cancelar e 
'por favor,escolha uma' da mensagem e informações de título: 
 
JOptionPane.showInternalConfirmDialog(frame, 
"please choose one", "information", 
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE); 
 
Mostrar uma caixa de diálogo de aviso com o título de OK, cancelar, opções 'Aviso' e 
'Clique em OK para continuar' da mensagem: 
 
 //Confirmar 
 Object[] options = {"Sim", "Não"}; 
 int sd = 
 JOptionPane.showOptionDialog( 
 null, 
 "Deseja realmente ALTERAR dados do PEDIDO ?", 
 "Confirmação!", 
 JOptionPane.DEFAULT_OPTION, 
 JOptionPane.WARNING_MESSAGE, 
 null, 
 options, 
 options[0]); 
 
 if (sd != 0) { 
 return; 
 } 
 
Mostrar uma caixa de diálogo perguntando ao usuário para digitar uma seqüência de 
caracteres: 
 
String inputValue = JOptionPane.showInputDialog("Por favor, insira um valor "); 
 
Mostrar uma caixa de diálogo perguntando ao usuário para selecionar uma seqüência de 
caracteres: 
 
Object[] possibleValues = { "Primeiro", "Segundo", "Terceiro" }; 
Object selectedValue = JOptionPane.showInputDialog(null, 
"Escolha um", "Input", 
JOptionPane.INFORMATION_MESSAGE, null, 
possibleValues, possibleValues[0]); 
 
 
36 
 
BIBLIOGRAFIA 
ANSELMO, F. (2005). Aplicando Lógica Orientada a Objeto em Java (2ª ed ed.). Florianópolis: 
VisualBooks. 
BERG, A., & FIGUEIRÓ, J. P. (2006). Lógica de programação (3ª Edição ed.). Canoas: ULBRA.