Você está na página 1de 30

P1

Introduo e Reviso de Conceitos de Programao voltados para a Linguagem


JAVA

Prof. Andr Camargo
www. andrecamargo.hd1.com.br






VERSO 1.5









Santiago, fevereiro de 2013.


INSTITUTO ESTADUAL DE EDUCAO
PROFESSOR ISAAS
TCNICO EM INFORMTICA-
QUALIFICAO EM PROGRAMAO


P1

Pgina 2 de 30

ndice
NDICE .................................................................................................................................... 2
REVISO DE PROGRAMAO DESKTOP (P1)............................................................. 3
1. O QUE UM PROGRAMA? ............................................................................................. 3
1.1. COMO UM PROGRAMA EXECUTADO?....................................................................................... 3
1.2. QUAL A ESTRUTURA BSICA DE UM PROGRAMA?....................................................................... 4
2. TIPOS DE DADOS ............................................................................................................. 4
3. DEFINIO DE VARIVEIS ........................................................................................... 5
3.1. EXPRESSES ARITMTICAS .......................................................................................................... 5
3.2. Atribuies .................................................................................................................................. 6
4. O QUE UM ALGORITMO? ............................................................................................ 6
4.1. COMO CRIAR ALGORITMOS? ....................................................................................................... 7
PARA CRIARMOS OS ALGORITMOS, PRECISAMOS SEGUIR ALGUNS PASSOS. . 7
5. USANDO JOPTIONPANE ................................................................................................. 7
5.1. Lendo Informaes do Teclado utilizando JOptionPane: .............................................................. 7
CONTEDO 3 MDULO ..................................................................................................... 8
6. TRABALHANDO COM INTERFACE GRFICA ........................................................... 8
6.1. Montando o primeiro sistema com interface: .............................................................................. 9
7. COMPARAES ............................................................................................................. 11
8. CARACTERES ESPECIAIS ............................................................................................ 11
9. COMANDOS DE DECISO ............................................................................................. 12
9.1. SE ENTO / IF ... THEN ............................................................................................................... 12
10. LOOP(REPETIO) .................................................................................................... 13
P1

Pgina 3 de 30

10.1. Looping For ............................................................................................................................. 13
11. COMPONENTES DA INTERFACE GRFICA ......................................................... 13
11.1. Jframe Janela ........................................................................................................................ 13
11.2. Jlabel Rtulo ......................................................................................................................... 14
11.3. Jbutton Boto ....................................................................................................................... 16
11.4. JtextField Campo de Texto .................................................................................................... 18
11.5. Jcombobox Campo de Seleo .............................................................................................. 19
11.6. JradioButton Boto de Opo ............................................................................................... 21
11.7. Colocando a data no Sistema ................................................................................................... 23
11.8. Criando um boto Sair ............................................................................................................. 23
12. VALIDAO DE CAMPOS DO FORMULRIO ...................................................... 23
12.1. Modelo 1 ................................................................................................................................. 23
12.2. Modelo 2 ................................................................................................................................. 26





Reviso de Programao Desktop (P1)
1. O QUE UM PROGRAMA?
Programa um software.
o roteiro que orienta o computador, mostrando-lhe a seqncia de operaes necessrias
para executar uma determinada tarefa.
Um programa uma seqncia de instrues que dirigem a Unidade Central de
Processamento na execuo de alguma tarefa.
Diz-se que um programa composto por uma srie de comandos ou instrues.
1.1. COMO UM PROGRAMA EXECUTADO?
O programa executado, seguindo a ordem lgica, continua de como ele foi escrito,
semelhante a ordem de ler um livro, comeamos a ler na primeira linha da primeira pgina e
vamos lendo o livro at o seu final.
P1

Pgina 4 de 30

Os programas so executados atravs de um mtodo principal, denominado mtodo
main, abaixo segue um exemplo de uma classe Java, com o seu mtodo main.


No netbeans, o que identifica uma classe java que possui um mtodo principal (mtodo main)
o play verde sobre o arquivo.

1.2. QUAL A ESTRUTURA BSICA DE UM PROGRAMA?
Todos os programas necessitam de um mtodo principal, so executados a partir desse
mtodo e seguem toda a lgica que foi inserida nesse mtodo, linha a linha.
Somente deve existir um mtodo principal em um programa para ser executado.




2. TIPOS DE DADOS
int = nmeros inteiros de -2.147.483.648 e 2.147.483.647.
long= nmeros inteiros de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
float= numeros com virgula e casas decimais (1,1) (1) (-1,67)
String= palavras (Programao)
char= um caracter(uma letra) (A) (B)


P1

Pgina 5 de 30

3. Definio de Variveis
float salario;
int idade;
String nome;
boolean resposta; (somente aceita valores verdadeiro e falso, (true e false))
VETOR
String strArray[] = new String[10];
Esse vetor pode guardar 10 informaes do tipo string, tambm pode ser de
qualquer tipo de dado;
Para guardar dados no vetor precisamos atribuir as posies que estamos
salvando.
strArray[0] = oi;
strArray[1] = ab;

strArray[9] = c;










3.1. EXPRESSES ARITMTICAS
Expresses aritmticas so aquelas que apresentam como resultado um valor numrico
que pode ser um nmero inteiro ou real, dependendo dos operandos e operadores. Os
operadores aritmticos disponveis em a-- esto mostrados na Tabela a seguir.
Operador Descrio
+ Soma
- Subtrao
* Multiplicao
P1

Pgina 6 de 30

/ Diviso
% Mdulo (Resto da diviso inteira)
^ Potncia
3.2. Atribuies
Variveis podem ser atribudas em forma de expresses como:
int x, y, z;
x = y = z = 0;
No exemplo as trs variveis recebem o valor 0;
Operadores de Atribuio:
Expresso Significado
x += y x = x + y
x -= y x = x y
x *= y x = x * y
x /= y x = x / y
3.2.1. Incrementos e decrementos
Java tambm possui incrementadores e decrementadores :
y = x++;
y = --x;
As duas expresses do resultados diferentes, pois existe uma diferena entre prefixo e
sufixo. Quando se usa os operadores ( x++ ou x-- ), y recebe o valor de x antes de x ser
incrementado, e usando o prefixo ( ++x ou x ) acontece o contrario, y recebe o valor
incrementado de x.
4. O QUE UM ALGORITMO?
Para solucionar qualquer problema utilizando o computador primeiro precisamos descrev-lo
de uma forma clara e precisa. preciso encontrar uma sequncia de passos que permitam que o
problema seja resolvido. Esta sequncia de passos chamada de algoritmo, e deve descrever todo o
comportamento esperado durante a execuo. (CRU 2001)
Algoritmo a sequncia de passos necessrios para efetuar uma tarefa.
Ex: Ler 2 valores e calcular a soma e exibir o resultado.
INICIO
float num1,num2,soma;
num1=Informe o valor 1;
P1

Pgina 7 de 30

num2=Informe o valor 2;
soma=(num1+num2);
o valor da soma +soma;
FIM

Atividade:
1. Escrever esse algoritmo acima na linguagem Java:

4.1. COMO CRIAR ALGORITMOS?
Para criarmos os algoritmos, precisamos seguir alguns passos.
Quem so as variveis:
Quais informaes devem ser solicitadas para o usurio:
Processamento:
Exibir resposta:







5. Usando JOptionPane
Exibindo Mensagens;
JOptionPane.showMessageDialog(null, JAVA");
JOptionPane.showMessageDialog(null, Seu nome "+varivel);

5.1. Lendo Informaes do Teclado utilizando JOptionPane:
5.1.1. Tipo String
String cidade;
cidade = JOptionPane.showInputDialog(null, "Informe o nome de sua cidade:");

P1

Pgina 8 de 30

5.1.2. Tipo Int
String ler;
int idade;
ler= JOptionPane.showInputDialog(null, " Informe a sua idade");
idade=Integer.parseInt(ler);

5.1.3. Tipo float
String ler;
float salario;
ler= JOptionPane.showInputDialog(null," Informe o Salrio");
salario=Float.parseFloat(ler);

Obs:
Tanto para ler nmeros do tipo int quanto para ler do tipo float necessrio primeiro ler o
valor em uma string e depois efetuar a converso para o tipo de dado, a definio da varivel ler,
necessrio somente uma vez, quando vamos ler mais nmeros exemplo:
String ler;
float salario;
int idade;
ler= JOptionPane.showInputDialog(null,"Informe o Salrio");
salario=Float.parseFloat(ler);
ler= JOptionPane.showInputDialog(null,"Informe idade");
idade=Float.parseFloat(ler);
Contedo 3 Mdulo
6. Trabalhando com interface grfica
Criando o primeiro projeto com Interface:
Para criar o projeto: Ir em :
Arquivo/Novo Projeto escolher Java e ao lado aplicativo java e escolher o nome do
projeto.
Verificar se o projeto correto est sendo executado

O Projeto deve estar em NEGRITO, se no estiver:
Clicar com o boto direito do mouse sobre o projeto e definir como projeto principal.
P1

Pgina 9 de 30

Aps criar o um novo projeto necessrio criar um novo arquivo chamado JFrame,
que a primeira janela do sistema.
Clicar sobre o pacote com o boto direito do mouse, ir em novo e escolher a opo
Formulrio JFrame.

Sistema de SOMA: Nome do projeto e est definido como projeto principal
Sistema.de.soma: Nome do pacote onde criamos os arquivos
Janela Principal: Formulrio Jframe , arquivo que pode ser executado
SistemadeSOMA: Classe principal, arquivo que vamos apagar:
Aps criarmos o segundo arquivo, este que contm a parte de projeto, necessrio
apagar o primeiro arquivo.
Aps criar esse arquivo necessrio fazer o programa inici-lo:
Para o programa iniciar esse novo arquivo, precisamos clicar sobre o nome do projeto
com o boto direito do mouse, depois escolher a opo propriedades, nessa janela que ser
aberta necessrio encontrar a opo executar, e depois escolher ao lado de classe principal o
boto procurar e apontar para o arquivo novo que vai ser executado pelo projeto.





6.1. Montando o primeiro sistema com interface:
Ler 2 valores e calcular a soma e exibir o resultado.
INICIO
float num1,num2,soma;
num1=Informe o valor 1;
num2=Informe o valor 2;
soma=(num1+num2);
o valor da soma +soma;
FIM
P1

Pgina 10 de 30


Utilizando Rtulo e caixa de texto e boto:
Na interface o sistema deve ficar assim:

Conhecendo os componentes bsicos da interface. Como retirar valor dos componentes:
.getText() Retiramos o texto do componente.
.setText() Atribumos texto ao componente.

Implementar o cdigo do algoritmo para a ao do boto.
float num1,num2,soma;
num1= Float.parseFloat(jTextFieldNum1.getText());
//Nesse momento do evento do boto salvar estamos retirando da interface o valor que existe
dentro do componente jTextFieldNum1, e passando para a varivel numrica num1;

Atividade: Finalizar a lgica e exibir a resposta dentro da caixa de texto do resultado:
Dica: jTextFieldResultado.setText(soma+ "");


Atividades Prticas:
1. Ler dois valores e multiplic-los e exibir o resultado;
2. Ler o numero de horas, o valor da hora trabalhada, calcular o salrio.
3. Ler o nome e cidade de uma pessoa e informar uma mensagem:
Nome sua cidade cidade.
Andr sua cidade Santiago.
4. Calcular a Frmula de Bhaskara


P1

Pgina 11 de 30

7. Comparaes
Java possui vrias expresses para testar igualdade e magnitude. Todas as expresses
retornam um valor booleano (true ou false). (V ou F)
Utilizasse a expresso if.
7.1.1. Operadores de comparao
Operador Significado Exemplo
== Igual x == 3
!= Diferente ( No igual) x != 3
< Menor que x < 3
> Maior que x > 3
<= Menor ou igual x <= 3
>=
.equals(teste)
Maior ou igual
Comparao entre String
x >= 3
nome.equals(java)







7.1.2. Operadores lgicos
Operador Significado
&& Operao lgica E (AND)
|| Operao lgica OU (OR)
! Negao lgica
& Comparao bit-a-bit E (AND)
| Comparao bit-a-bit OU (OR)
^ Comparao bit-a-bit OU-Exclusivo (XOR)
8. CARACTERES ESPECIAIS
Caracter Significado
\n Nova Linha
P1

Pgina 12 de 30

\t Tab
\b Backspace
\r Retorno do Carro
\f Formfeed (avana pgina na
impressora)
\\ Barra invertida
\ Apstrofe
\ Aspas

9. COMANDOS DE DECISO
Os comandos de deciso ou desvio fazem parte das tcnicas de programao
que conduzem as estruturas de programas que no so totalmente seqenciais.
Com as instrues de SALTO ou DESVIO pode-se fazer com que o programa
proceda de uma ou outra maneira, de acordo com as decises lgicas tomadas em
funo dos dados ou resultados anteriores. As principais estruturas de deciso so:
Se Ento, Se ento Seno e Caso Selecione
9.1. SE ENTO / IF ... THEN
A estrutura de deciso SE/IF normalmente vem acompanhada de um
comando,
ou seja, se determinada condio for satisfeita pelo comando SE/IF ento execute
determinado comando.
Imagine um algoritmo que determinado aluno somente estar aprovado se
sua mdia for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria.
SE MEDIA >= 5.0 ENTO ALUNO APROVADO

Em Java
if (media>=5) { // comparando numeros
ao aluno Aprovado
}else{
ao aluno No Aprovado
}

if (nome.equals(nome)){ // comparando palavras
ao nome Igual
}else{
ao nome Diferente
}



Atividades:
2. Ler dois nomes e descobrir se so iguais;

P1

Pgina 13 de 30

3. Ler dois valores e calcular a media, e exibir aprovado quando o aluno tiver mdia
maior que 5 e reprovado quando a mdia for inferior.

4. Criar um sistema de login, lendo nome e senha e exibindo a mensagem voc est
logado, se a senha e o login estiverem certos. Usar campo de texto.
10. Loop(Repetio)
So comandos utilizados para criar estruturas de repetio, dessa maneira possvel executar
as mesmas operaes para um numero infinito ou finito de usurios, ou de valores.
10.1. Looping For
O loop em Java tem esta sintaxe:
for(int i=0; i<10;i++){
JOptionPane.showMessageDialog(null, JAVA");
}
Este comando utilizado para a repetio de blocos de comandos, ou instrues,
durante os cdigos trabalhados durante o mdulo utilizaremos esta tcnica de programao.








11. Componentes da Interface Grfica
11.1. Jframe Janela
Jframe uma janela. Um sistema pode conter uma janela ou vrias.
Para conter vrias janelas o sistema precisa de uma JanelaPrincipal que vai gerenciar o sistema
e possuir o menu, cada opo do menu aciona uma nova janela(Jframe)
Para acionar essa nova janela precisamos aps criar esse novo Jframe colocar o cdigo abaixo
para cada janela nova a ser acionada.
PaginaInicial form= new PaginaInicial();
form.setVisible(true);
Onde o mesmo padro de cdigo deve ser seguido para todos os novos jframe, trocando
apenas o nome da janela (Parte em Vermelho)
Na primeira linha estamos criando um novo objeto dessa classe java. E na segunda linha
estamos atribudo o valor verdadeiro a propriedade visibilidade desse componente.
P1

Pgina 14 de 30

11.1.1. Jframe ocupando toda a tela.
Para utilizar o Jframe e ao ser instanciado para iniciar a sua execuo ele ocupar todo o espao
da tela, necessrio ir em cdigo fonte e encontrar o texto initcomponentes();
E colocar o cdigo abaixo.
setExtendedState(MAXIMIZED_BOTH);

11.1.2. Para centralizar um Jframe.
Para utilizar o Jframe e ao ser instanciado para iniciar a sua execuo ele aparecer centralizado
na tela, necessrio ir em cdigo fonte e encontrar o texto initcomponentes();
E colocar o cdigo abaixo.
setLocationRelativeTo(null);

11.1.3. Trocar o cone do Jframe
Para trocar o cone da janela necessrio ir em cdigo fonte e encontrar o texto
initcomponentes(); Substituindo o nome da imagem que no caso clientenovo.png dentro do pacote
imagens.
E colocar o cdigo abaixo.
java.net.URL url = getClass().getResource("/imagens/clientenovo.png");
java.awt.Image im = java.awt.Toolkit.getDefaultToolkit().getImage(url);
setIconImage(im);


11.2. Jlabel Rtulo
O JLabel um componente muito utilizado em Java para a criao de formulrios onde
necessrio a insero de textos ou imagens.
A insero desse componente no Netbeans possvel aps a criao de um novo JPanel ou
Jframe, atravs da opo rtulo na janela paleta.
Aps a insero desse componente no netbeans necessrio trocar o nome desse componente
para ficar fcil de localiz-lo quando estivermos escrevendo cdigo. Uma boa prtica de programao
utilizar o nome do componente e acrescentar ao final o nome dado contedo que ir guardar no
formulrio.
Ex:
Para um jLabel que vai solicitar o nome do cliente.
jLabelInformeNome ou jLabel_InformeNome
Existem diversas opes de personalizao desse componente basta clicar sobre o
componente com o boto direito e selecionar a opo Propriedades, vamos a algumas delas:
Font: Definir fonte tamanho e estilo de texto.
P1

Pgina 15 de 30

Background: Cor de fundo.
Forenground: Cor do texto.
horizontalAlignment: Alinhamento do texto dentro do componente.
Icon: imagem que vai aparecer sobre o componente.
Text: texto que est dentro do campo.
toolTipText: texto que aparece sobre cursor quando posicionado sobre o componente.
Cursor: define o cursor que aparece sobre o componente.
Border: define a borda para o componente.
Visible: essa propriedade determina se o boto visvel ou invisvel, pode ser facilmente
utilizado quando um determinado tipo de usurio pode ver determinada funo ou no.
Para atribuir o texto que aparece nesse componente devemos utilizar a propriedade setText(),
ou clicar com o boto direito do mouse sobre o componente e selecionar a opo editar texto.
String nome=DevMedia;
jLabelMsg.setText(Seja bem vindo +nome);
Para colocarmos imagem no jLabel devemos fazer o seguinte, clicar com o boto direito do
mouse sobre o componente e depois na opo icon, clicar no boto com os 3 pontos como segue na
imagem.

P1

Pgina 16 de 30


Aps clicar nesse boto ir abrir uma janela com vrias opes, devemos selecionar importar
para o projeto, selecionar a imagem e finalizar o processo. Dessa maneira estaremos trazendo a
imagem para dentro do projeto.
O cone ir aparecer no jlabel, esses passos devem ser seguidos a primeira vez em que iremos
selecionar as imagens, depois basta clicar no jCombobox e selecionar o nome da imagem que j faz
parte do projeto.
11.3. Jbutton Boto
O JButton um componente muito utilizado em Java para a criao de formulrios onde
necessrio a utilizao de botes para acionar aes dentro do formulrio, ou aes externas ao
formulrio como salvar em um banco de dados ou salvar em um arquivo entre outros.
A insero desse componente no Netbeans possvel aps a criao de um novo JPanel ou
Jframe, atravs da opo button na janela paleta.
Aps a insero desse componente no netbeans necessrio trocar o nome desse componente
para ficar fcil de localiz-lo quando estivermos escrevendo cdigo. Uma boa prtica de programao
utilizar o nome do componente e acrescentar ao final o nome da funo desse boto no formulrio.
P1

Pgina 17 de 30

Ex:
Para um jButton que vai limpar os dados de um formulrio, qual deveria ser o nome desse
boto.
jButtonLimpar ou jButton_Limpar
Para efetuar esse processo no netbeans basta ir sobre o componente com o mouse e clicar
com o boto direito e escolher a opo alterar nome da varivel.
Existem diversas opes de personalizao desse componente basta clicar sobre o
componente com o boto direito e selecionar a opo Propriedades, vamos a algumas delas:
Font: Definir fonte tamanho e estilo de texto.
Background: Cor do boto.
Forenground: Cor do texto.
horizontalAlignment: Alinhamento do texto dentro do componente.
Icon: imagem que vai aparecer sobre o componente.
Text: texto que est dentro do campo.
toolTipText: texto que aparece sobre cursor quando posicionado sobre o componente.
Cursor: define o cursor que aparece sobre o componente.
Border: define a borda para o componente.
Margin: definimos quanto de espao necessrio ao redor do componente, de acordo com a
imagem ou texto do componente, podemos zerar os valores da margin para deixarmos o boto o menor
possvel com a imagem ou texto.
Visible: essa propriedade determina se o boto visvel ou invisvel, pode ser facilmente
utilizado quando um determinado tipo de usurio pode ver determinada funo ou no.
Um dos Eventos utilizado sobre um Jbutton ActionPerformed, evento quando o boto for
acionado, (clicado) dessa maneira devemos dentro desse mtodo colocar a ao que esse boto est
chamando, no caso de limpar os campos de textos(Jtextfield) de um formulrio devemos colocar o
nome do campo mais settext() com valor caso o campo esteja em branco, caso o campo tenha um
valor padro devemos colocar dentro das esse valor padro.
Esse exemplo anterior foi uma ao interna do formulrio, esse boto tambm pode chamar
aes externas vamos ver um exemplo.
Basta criar outro JFrame exemplo jframeTeste e colocar dentro do evento ActionPerformed
do boto do primeiro jframe o evento para abrir um novo JFrame.

JframeTest form= new JframeTest():
Form.setvisible(true)
Nesse caso criamos um objeto do tipo do JframeTest e depois determinamos que este form
deve fica visvel, passando como parmetro para o setvisible o valor true que verdadeiro.


P1

Pgina 18 de 30

11.4. JtextField Campo de Texto
O JTextField um componente muito utilizado em Java para a criao de formulrios onde
necessrio a insero dos dados pelo teclado.
Esse campo de texto comum tambm em formulrios web, so nesses tipos de campos que o
usurio preenche o seu nome, email, endereo, entre outros dados.
A insero desse componente no Netbeans possvel aps a criao de um novo JPanel ou
Jframe, atravs da opo campo de texto na janela paleta.
Aps a insero desse componente no netbeans necessrio trocar o nome desse componente
para ficar fcil de localiza-lo quando estivermos escrevendo cdigo. Uma boa prtica de programao
utilizar o nome do componente e acrescentar ao final o nome do tipo de dado que ele vai guardar.
Ex:
Para um jTextField que vai guardar o nome de um cliente, qual deveria ser o nome desse
campo.
jTextFieldNome ou jTextField_Nome
Para efetuar esse processo no netbeans basta ir sobre o componente com o mouse e clicar
com o boto direito e escolher a opo alterar nome da varivel.
Depois da sua insero pode ser necessrio alterar o tamanho do componete, para isto
basta clicar no componente e arrast-lo.
Existem diversas opes de personalizao desse componente basta clicar sobre o
componente com o boto direito e selecionar a opo Propriedades, vamos a algumas delas:
Background: cor de fundo do componente.
Editable: Propriedade que se estiver marcada permite a insero/remoo pelo teclado.
Font: Definir fonte tamanho e estilo de texto.
Forenground: Cor do texto.
horizontalAlignment: Alinhamento do texto dentro do componente.
Text: texto que est dentro do campo.
toolTipText: texto que aparece sobre cursor quando posicionado sobre o componente.
Cursor: define o cursor que aparece sobre o componente.
Border: define a borda para o componente.
selectedTextColor: cor do texto quando estiver selecionado.
selectionColor: cor da seleo do texto.






P1

Pgina 19 de 30

11.5. Jcombobox Campo de Seleo
O jcombobox um componente muito utilizado em Java para a criao de formulrios onde h
a possibilidade de vrias respostas definidas para uma pergunta.

A insero desse componente no Netbeans possvel aps a criao de um novo JPanel ou
Jframe, atravs da opo jcombobox ou caixa de combinao na janela paleta.
Aps a insero desse componente no netbeans necessrio trocar o nome desse componente
para ficar fcil de localiz-lo quando estivermos escrevendo o cdigo. Uma boa prtica de
programao utilizar o nome do componente e acrescentar ao final o nome dado contedo que ir
guardar no formulrio.
Ex:
Para um jCombobox que vai exibir opes para o tipo de CNH de um cliente.
JComboboxClienteCNH ou JComboboxCliente_CNH
Existem diversas opes de personalizao desse componente basta clicar sobre o
componente com o boto direito e selecionar a opo Propriedades, vamos a algumas delas:
Font: Definir fonte tamanho e estilo de texto.
Background: Cor de fundo.(Normalmente NO aparece no Netbeans mas funciona durante a
execuo)
Forenground: Cor do texto.
horizontalAlignment: Alinhamento do texto dentro do componente.
Text: texto que est dentro do campo.
toolTipText: texto que aparece sobre cursor quando posicionado sobre o componente.
Cursor: define o cursor que aparece sobre o componente.
Border: define a borda para o componente. (Tem que marcar BorderPainted)
Visible: essa propriedade determina se o jRadioButton visvel ou invisvel, pode ser
facilmente utilizado quando um determinado tipo de usurio pode ver determinada funo ou no.
SelectedItem: Define a opo que inicial selecionada.
SelectedIndex: Define o ndice que est selecionado.
Model: Define quais os valores que iro aparecer no componente, pode ser utilizado para
insero manual de duas maneiras a primeira diretamente ao lado do nome do componente, digitando
uma opo virgula a outra e assim por diante com todas.
P1

Pgina 20 de 30


No exemplo acima foram inseridas todas as opes para a Carteina Nacional de Habilitao:
A,B,C,D,E,AB,AC,AD,AE
Ou podemos clicar no boto com 3 pontos ao lado direito da tela na linha do model para abrir
uma janela onde devemos digitar cada opo em uma linha dessa janela.

P1

Pgina 21 de 30

11.6. JradioButton Boto de Opo
Propriedades do JRadioButton - Java Swing
componentes NetBeans Parte 8
O JRadioButton um componente muito utilizado em Java para a criao de formulrios onde
necessrio a seleo de uma opo. Indicado para a utilizao de respostas onde possa ser sim ou
no, masculino ou feminino entre outros. No muito indicado para mais de 3 opes porque acaba se
tornando uma poluio visual, deixando o usurio querendo selecionar mais de uma opo.
A insero desse componente no Netbeans possvel aps a criao de um novo JPanel ou
Jframe, atravs da opo JRadioButton de opo na janela paleta. No exemplo foram inseridos 2
JRadioButtons( 1 para Masculino e um para Feminino) e um jlabel com o texto Sexo.

Aps a insero desse componente no netbeans necessrio trocar o nome desse componente
para ficar fcil de localiz-lo quando estivermos escrevendo cdigo. Uma boa prtica de programao
utilizar o nome do componente e acrescentar ao final o nome dado contedo que ir guardar no
formulrio.
Ex:
Para um jRadioButton que vai guardar o sexo do cliente.
JRadioButtonClienteSexo ou JRadioButton_ClienteSexo
Existem diversas opes de personalizao desse componente basta clicar sobre o
componente com o boto direito e selecionar a opo Propriedades, vamos a algumas delas:
Font: Definir fonte tamanho e estilo de texto.
Background: Cor de fundo.
Forenground: Cor do texto.
horizontalAlignment: Alinhamento do texto dentro do componente.
Text: texto que est dentro do campo.
toolTipText: texto que aparece sobre cursor quando posicionado sobre o componente.
Cursor: define o cursor que aparece sobre o componente.
Border: define a borda para o componente. (Tem que marcar BorderPainted)
Visible: essa propriedade determina se o jRadioButton visvel ou invisvel, pode ser
facilmente utilizado quando um determinado tipo de usurio pode ver determinada funo ou no.
Selected: define que esta opo est selecionada. Normalmente utilizada para definir qual
opo j sai marcada quando o formulrio carregado.
Text: Para atribuir o texto que aparece nesse componente. Tambm podemos utilizar a
propriedade setText(), ou clicar com o boto direito do mouse sobre o componente e selecionar a
opo editar texto.
Para utilizarmos dois jRadioButtons e selecionarmos apenas um necessrio a insero de
buttonGroup, este componente encontra-se: atravs da opo grupo de botes na janela paleta. Aps
a insero desse componente no formulrio ele no aparece, somente possvel acess-lo atravs da
janela inspetor.
P1

Pgina 22 de 30

Aps localiz-lo necessrio alterar o nome dessa varivel para o tipo de grupo de boto que
ele est representando.
Aps saber o nome desse grupo basta ir a cada JRadioButton que esto aparecendo no
formulrio e fazem parte desse grupo e selecionar em propriedades na opo buttonGroup o nome do
grupo de botes, para cada grupo de botes que existir no formulrio necessrio inserir um novo
grupo. Visualize essa opo na imagem.







P1

Pgina 23 de 30

11.7. Colocando a data no Sistema
Primeiro Passo, devemos inserir um Jlabel(rtulo) e trocar o nome para JlabelData.
Aps colocar o componente devemos clicar com o boto direito sobre o componente, ir em
personalizar cdigo e colocar o cdigo abaixo.(Alguns ajustes podem ser necessrios devido ao nome
da varivel do componente)
GregorianCalendar data = new GregorianCalendar();
int dia = data.get(GregorianCalendar.DAY_OF_MONTH);
int mes = data.get(GregorianCalendar.MONTH)+1;
int ano = data.get(GregorianCalendar.YEAR);
jLabelData.setText(dia+" / "+mes+" / "+ano);

11.8. Criando um boto Sair
Aps criar o boto sair, e criar o evento necessrio colocar o cdigo abaixo.
System.exit(0);

12. Validao de Campos do Formulrio
12.1. Modelo 1
Validao de Campo jTextField
Vamos comear falando neste post sobre as validaes de campos JTextField para as
interfaces grficas usando swing.
Aps inserir o jTextField no formulrio necessrio alterar o nome do componente,
para que quando for necessrio acionar as suas propriedades tenhamos uma maior facilidade.
J tratamos aqui nos posts sobre alguns tipos de validao, vamos rever:
Componente JTextField Aceitando apenas Letras:
http://www.devmedia.com.br/jTextField-aceitando-apenas-letras/26019
Componente JTextField Aceitando apenas Nmeros:
http://www.devmedia.com.br/como-alterar-o-componente-jTextField-para-aceitar-
apenas-numeros/26152
Validao de email:
http://www.devmedia.com.br/evento-focuslost-em-jTextField-validando-email-java-
swing-componentes-netbeans-parte-3/21392
Essas foram validaes sobre os tipos de informaes que os jTextFields esto
aceitando no componente. Sobre os tipos de informaes cada jTextField deve aceitar.
Agora vamos descobrir como validar as informaes informadas em um campo de
texto ao tentar executar uma ao, Ao clicar em um boto salvar, exibir, como testar se
podemos realmente efetuar a operao:
P1

Pgina 24 de 30

Primeiro passo, ser montar uma interface a ser validada: No caso a validao ser
antes de mandar salvar no banco de dados, vamos SUBSTITUIR o comando para salvar no
banco de dados pelo cdigo para exibir uma mensagem, a fim de evitar que o cdigo fique
muito extenso e difcil de ser compreendido rapidamente.
Para criarmos esse cadastro precisamos inserir 1 JPanel(com borda de ttulo e borda de linha),
7 rtulos, 3 jTextFields e um boto.
Vamos aos nomes dos componentes:
jTextFieldNome=Campo de texto do nome
jTextFieldCpf=Campo de texto do CPF
jTextFieldRg=Campo de texto do rg
jLabelMsgObrigatotioNome=Rtulo de campo obrigatrio do nome
jLabelMsgObrigatotioCpf=Rtulo de campo obrigatrio do cpf
jLabelMsgObrigatotioRg=Rtulo de campo obrigatrio do rg
Bom os rtulos de Nome*, RG*, CPF* foram criados utilizando apenas um rtulo e
usando propriedades de HTML para mudar a cor do asterisco.
http://www.devmedia.com.br/personalizando-o-jlabel-java-swing-componentes-
netbeans-parte-7/21808
Montamos a interface e trocamos o nome dos componentes que iro nos interessar no
desenvolvimento dessa validao: jTextField e Jlabel Obrigatrio
Ao desenvolvermos este tipo de validao vamos trabalhar com a visibilidade dos
jLabel Obrigatrio. A surgem duas opes iniciais:
Primeira Opo:
Este formulrio pode aparecer para o usurio com todas as mensagens visveis e ao
tentar exibir as informaes caso alguma no seja preenchida deixamos ela visvel e deixamos
as que esto corretas invisveis e exibimos uma mensagem para o usurio confirmar os dados.
Segunda Opo:
Este formulrio pode aparecer para o usurio com todas as mensagens invisveis e ao
tentar exibir as informaes caso alguma no seja preenchida deixamos ela visvel exibimos
uma mensagem para o usurio confirmar os dados.
P1

Pgina 25 de 30

Para esta etapa em que as mensagens j aparecem invisveis necessrio atribuir o
valor de visibilidade como false.
Cdigo para as mensagens iniciarem invisveis.
jLabelMsgObrigatotioNome.setVisible(false);
jLabelMsgObrigatotioCpf.setVisible(false);
jLabelMsgObrigatotioRg.setVisible(false);

J podemos definir como vai funcionar a validao.
Inicialmente vamos definir que todos os campos devem possuir algum valor.
Mas a sequencia de cdigo pode ser personalizada para determinar um valor diferente.
Para verificar se um campo de texto est vazio existem duas maneiras bsicas:
Testando o tamanho do texto do componente, ou acionando a propriedade isEmpty().
Cdigo para verificar se o tamanho do campo de texto maior do que zero, se for
passou na validao e a mensagem fica invisvel. Aqui o valor Zero da validao pode ser
substitudo de acordo com a necessidade de informao.
if (jTextFieldNome.getText().length() > 0) {
jLabelMsgObrigatotioNome.setVisible(false);
} else {
jLabelMsgObrigatotioNome.setVisible(true);
}
Cdigo para verificar se o campo de texto est vazio, faz a mesma coisa do anterior,
diferena que apenas verifica se o campo est vazio.
if (jTextFieldNome.getText().isEmpty()) {
jLabelMsgObrigatotioNome.setVisible(true);
} else {
jLabelMsgObrigatotioNome.setVisible(false);
}
Aps colocar o cdigo de validao para cada campo no formulrio necessrio
agrupar todas as condies em um if sepadas pela condio AND, caso alguma das condies
no seja satisfeita necessrio exibir uma mensagem para a confirmao dos dados.
Cdigo completo do boto exibir, caso seja um boto salvar, no lugar da mensagem
do IF entra o cdigo para efetuar a operao.

if (jTextFieldNome.getText().length() > 0) {
jLabelObrigatorioNome.setVisible(false);
} else {
P1

Pgina 26 de 30

jLabelObrigatorioNome.setVisible(true);
}

if (jTextFieldRg.getText().length() > 0) {
jLabelObrigatorioRg.setVisible(false);
} else {
jLabelObrigatorioRg.setVisible(true);
}
if (jTextFieldCpf.getText().length() > 0) {
jLabelObrigatorioCpf.setVisible(false);
} else {
jLabelObrigatorioCpf.setVisible(true);
}
if ((jTextFieldNome.getText().length()>0)
&&(jTextFieldRg.getText().length()> 0)
&& (jTextFieldCpf.getText().length() > 0)) {
JOptionPane.showMessageDialog(null, "Dados Validados aqui deve ser
efetuada a operao!!");
} else {
JOptionPane.showMessageDialog(null, "Confira os campos Obrigatrios!!");
}

Resumindo este cdigo acima, faz a validao de trs campos obrigatrios,
necessrio preencher com alguma informao cada um dos campos. Alm de auxiliar no
preenchimento do formulrio, este tipo de validao pode evitar que um cadastro seja salvo
em branco no banco de dados, entre outros.
No prximo post vamos trabalhar com outro tipo de validao de dados, em que os
campos que devem ser verificados no formulrio so exibidos em uma msg.
12.2. Modelo 2
Dando continuidade aos nossos posts sobre validao de informaes nos formulrios
Jframe swing em JAVA.
As validaes apresentadas so validaes sobre informaes nos componentes swing
de java.
Os primeiros critrios de validaes que sero levados em considerao so os
critrios de obrigatoriedade dos campos, garantindo assim a utilizao de campos obrigatrios
no formulrio.
P1

Pgina 27 de 30


Figura 1. Exemplo do formulrio a ser validado.
Primeiro passo, ser montar uma interface a ser validada: No caso a validao ser
antes da operao de salvar, vamos SUBSTITUIR o comando para salvar pelo cdigo para
exibir uma mensagem, a fim de evitar que o cdigo fique muito extenso e difcil de ser
compreendido rapidamente.
Para criarmos esse cadastro precisamos inserir 1 JPanel(com borda de ttulo e borda de
linha), 5 rtulos, 2 jTextFields, 4 jcombobox, 2 botes.
Vamos aos nomes dos componentes:
jTextFieldLogin=Campo de texto do login
jPasswordSenha=Campo de senha
jComboboxTipoCadastro=Componente do tipo de cadastro
jComboBoxDia, jComboBoxMes, jComboBoxAno= Componentes para data.
Todos os campos acima so definidos como campos obrigatrios.


Listagem 1. Cdigo para verificar a obrigatoriedade dos campos
String validacao=Campos de Preenchimento Obrigatrio;
//varivel de validao recebe inicialmente a mensagem acima e aps concatena os campos
que ainda no foram preenchidos.
int flag=0;
// flag a bandeira que indica se a mensagem de validao deve ser exibida
if (jTextFieldLogin.getText().isEmpty()) {
validacao=validacao+\n* Campo de Login deve ser Preenchido ;
flag=1;
}
P1

Pgina 28 de 30

if (String.valueOf(jPasswordFieldSenha.getPassword()).length()<=8){
validacao=validacao+ "\n*Campo de Senha com no mnimo 8 caracteres";
flag=1;
}
if (jComboBoxDia.getSelectedIndex()==0){
validacao =validacao+ "\n* Selecione o Dia de Nascimento";
flag=1;
}
if (jComboBoxMes.getSelectedIndex()==0){
validacao =validacao+ "\n* Selecione o Ms de Nascimento";
flag=1;
}
if (jComboBoxAno.getSelectedIndex()==0){
validacao=validacao+ "\n* Selecione o Ano de Nascimento";
flag=1;
}
if (jComboboxTipoCadastro.getSelectedIndex()==0){
validacao=validacao+ "\n* Selecione o Tipo de Cadastro";
flag=1;
}

//if que testa o valor dentro da varivel flag, caso alguma das obrigatoriedades no seja
satisfeita entrou em um if e a varivel flag recebeu 1
//Neste if mandamos exibir a mensagem com o valor da varivel validao
if(flag==1){
JOptionPane.showMessageDialog(null, validacao);
}else{
//aqui o cdigo que deve ser executado aps a validao,
//entra nesse else ao passar pela validao

}
Este cdigo demostra a simples utilizao de lgica para validarmos um JFrame , utilizamos o
conceito de bandeira (flag) ou seja uma varivel com um valor inicial, que caso qualquer circunstncia
no seja verdadeira o valor dessa varivel modificado. Essa modificao do valor padro da varivel
determina que em uma condio if esse valor deve ser tratado.
No caso do exemplo acima tratamos como 0 o valor inicial que determina que todos esto
corretos, ao entrar em qualquer condio que no esteja verdadeira, mudamos para valor 1 o que
P1

Pgina 29 de 30

garante em um prximo if qual operao deve ser realizada por essa condio. No caso mandamos
exibir a mensagem de validao que tambm aproveitamos os ifs para concatenar uma mensagem
personalizada para cada condio de validao do formulrio.

Resumindo: O processo foi simples, criamos uma varivel flag de controle e mensagens
personalizadas para cada tipo de validao definida em nosso formulrio.

Explicao das validaes:
Listagem 2: Cdigo de validao do campo Login
if (jTextFieldLogin.getText().isEmpty()) {
validacao=validacao+\n* Campo de Login deve ser Preenchido ;
flag=1;
}
Explicao dessa validao.
Na linha do if criamos o teste que verifica se o campo de login est vazio. Estando o campo
vazio, entra no if, concatenamos a mensagem que o campo de login deve ser preenchido em uma
varivel chamada validao(varivel para concatenar as mensagens de erros), e trocamos o valor da
flag para 1, indicando que deve ser executada a ao de bandeira(flag)1.


Listagem 3: Cdigo de validao do campo Senha
if (String.valueOf(jPasswordFieldSenha.getPassword()).length()<=8){
validacao=validacao+ "\n*Campo de Senha com no mnimo 8 caracteres";
flag=1;
}
Explicao dessa validao.
Na linha do if criamos o teste que verifica se o campo de senha possui no mnimo 8 caracteres.
No contendo 8 caracteres, entra no if, concatenamos a mensagem que o campo de senha deve possuir
no mnimo 8 caracteres em uma varivel chamada validao(varivel para concatenar as mensagens
de erros), e trocamos o valor da flag para 1, indicando que deve ser executada a ao de
bandeira(flag)1.



Listagem 4: Cdigo de validao de campo jcombobox tipo de cadastro
if (jComboboxTipoCadastro.getSelectedIndex()==0){
validacao=validacao+ "\n* Selecione o Tipo de Cadastro";
flag=1;
}
P1

Pgina 30 de 30

Explicao dessa validao.
Na linha do if criamos o teste que verifica se o campo tipo de cadastro est selecionado na
primeira posio. Estando na primeira posio, entra no if, concatenamos a mensagem que o campo de
tipo de cadastro deve ser selecionado em uma varivel chamada validao(varivel para concatenar as
mensagens de erros), e trocamos o valor da flag para 1, indicando que deve ser executada a ao de
bandeira(flag)1.
O mesmo Procedimento foi executado para os demais combobox.

Listagem 5: Cdigo de ao da bandeira(flag)
Obs: Este cdigo deve ser o ltimo cdigo dos ifs
if(flag==1){
JOptionPane.showMessageDialog(null, validacao);
}else{
//aqui o cdigo que deve ser executado aps a validao,
//entra nesse else ao passar pela validao

}
Explicao dessa validao.
Na linha do if criamos o teste que verifica se a varivel flag possui o valor 1, teste de ao da
bandeira, caso possua o valor 1 mandamos exibir o valor da varivel validao, caso no possua o
valor 1 porque passou por todos os testes de validao, podemos colocar o cdigo para salvar no
banco dentro desse if, para exibir, imprimir...