Buscar

Java com Banco Dados

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 208 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 208 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 208 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

Prévia do material em texto

A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1
Apostila de Java 2 Com Banco de Dados 
1 – Introdução 
1.1 – Java: O que é Java? 
1.2 – Java: Como surgiu? 
1.3 – Java: Funcionamento 
 
2 – O que é preciso para programar em Java? 
2.1 – Baixando o WinZip 
2.2 – Baixando o JDK/SDK 
2.3 – Baixando a documentação do JDK/SDK 
2.4 – Baixando o JCreator 
2.5 – Configurando o JCreator 
2.6 – Testando o funcionamento do JDK/SDK e do JCreator 
 
3 – Conceitos fundamentais de Programação em Java 
3.1 – Como programa em Java 
3.2 – Anatomia de uma Classe 
3.3 – Comentários 
3.4 – O uso do ponto-e-vírgula 
3.5 – Tipos de dados 
3.6 – Conversão de tipo 
3.7 – Operadores 
3.8 – Variáveis 
3.9 – Funções matemáticas 
 
4 – Introdução a interface gráficas em Java 
4.1 – Entendo o Swing 
4.11 – Uso do JFrame na construção de janelas no aplicativo 
4.12 - Janela normal 
4.2 - Janela Maximizada 
4.3 - Janela minimizada 
4.4 – Janela que não pode ser redimensionada 
4.5 – Janela Centralizada 
4.6 – Trocando a cor do fundo da janela 
4.7 – Usando cores personalizadas para suas janelas 
4.8 – Definindo um ícone para a janela do aplicativo 
 
5 – Adicionando componentes JLabel ou rótulos na sua janela 
5.1 - Criar os objetos JLabel 
5.2 - Atribuir o conteúdo ao JLabel 
5.3 - Definir Coluna, Linha, largura e altura do JLabel 
5.4 - Alterando a cor do JLabel 
5.5 - Cores personalizada para o JLabel 
5.6 - Alterando tipo da fonte, estilo e tamanho 
5.7 – Adicionando imagem ao componente JLabel 
 
6 – Adicionando componentes JTextField ou caixa de texto 
6.1 – Foco para uma caixa de texto 
6.2 – Cor da fonte para a caixa de texto 
6.3 – Trocando a fonte, estilo e tamanho da letra do JTextField 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2
6.4 – Alinhamento do texto de uma caixa de texto 
6.5 – Alteração da cor de fundo da caixa de texto 
 
7 – Adicionando componentes JButton ou botões a sua janela 
7.1 – Botão somente com texto 
7.2 – Botão com texto e imagem 
7.3 – Botão somente com imagem 
7.4 – Adicionando vários botões na janela 
7.5 – Definir a cor de fundo para um componente JButton 
7.6 – Definir teclas de atalho para objetos JButton 
7.7 – Qual botão reagirá ao pressionamento da tecla enter 
 
8 - Adicionando componentes JPasswordField 
8.1 – Alterando a cor de fonte de um JPasswordField 
8.2 – Definir uma cor personalizada para o componente JPasswordField 
8.3 – Alterando a cor de fundo de um componente JPasswordField 
8.4 – Cor de fundo personalizada para o componente JPasswordField 
8.5 – Alterar tipo de fonte, estilo e tamanho da letra do componente 
8.6 – Alterando o caracter que aparece no componente JPasswordField 
 
9 – Controle JFormattedTextField para data, telefone, CEP, CPF 
9.1 – Adicionando cores na letra do JFormattedTextField 
9.2 – Adicionando cores no fundo do JFormattedTextField 
9.3 – Alterando o tipo, estilo, tamanho da fonte do JFormattedTextField 
 
10 – Fazendo um JButton executar uma ação 
10.1 – Clicando no botão para fechar uma janela 
10.2 – Clicando no mostrar para descobrir a senha digitada 
10.3 – Clicando no botão somar e será mostrada a soma dos números 
10.4 – Clicando no botão limpar e as caixas de texto serão limpas 
10.5 – Ocultar e Exibir componentes 
10.6 – Desabilitar e Habilitar Exibir componentes 
 
11 – Apresentando a classe JList 
11.1 – Selecionando múltiplos itens em uma caixa de listagem 
11.2 – Trocando a cor da letra do JList 
11.3 – Trocando a cor de fundo do JList 
11.4 – Trocando tipo, estilo e tamanho da fonte do JList 
 
12 – uso da classe JComboBox na criação de caixas de combinação 
12.1 – Como criar uma caixa de combinação editável 
 
13. Entendimento e uso da classe JCheckBox 
13.1 – Iniciar um formulário com uma caixa de seleção marcada. 
13.2 – Alterando a cor da letra de um JCheckBox 
 
14 – Uso da Classe JRadioButton para criar botões de opção 
 
15 – Fazendo um aplicativo com ComboBox CheckBox RadioButton 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3
16 – Como adicionar dica aos seus botões 
16.1 – Adicionar cores diferentes as dicas 
 
17 – Tipos de diálogos fornecidos pela classe JOptionPane 
17.1 – Como entender os diálogos de confirmação 
17.2 – Traduzir os botões de diálogos 
17.3 – Como obter dados por meio de diálogos do tipo prompt 
17.4 – Como fornecer os valores a serem selecionados em um diálogo 
17.5 – Entendimento e uso do método showMessageDialog. 
 
18 – Maiúsculas e Minúsculas 
 
19 – Adicionando Data nos seus aplicativos 
 
20 – Adicionando Horas ao seu aplicativo 
 
21 – Entendimento da classe JTextArea 
 
21 – Entendimento da classe JTextArea 
21.1 – Definição das barras de rolagem para os controles JTextArea 
21.2 – Controlando a quebra automática de linhas 
21.3 – Cor da fonte, Cor de fundo 
21.4 – Tipo, estilo e tamanho de fonte 
 
22 – Adicionando menus a um aplicativo Java 
22.1 – Como adicionar submenus a um item do menu 
22.2 – Como usar caixa de seleção como itens do menu JCheckBoxMenuItem 
22.3 – Usando botões de seleção como item do menu JRadioButtonMenuItem 
22.4 – Menu executando ações 
 
23 – Criando um menu de contexto – Classe JPopupMenu 
 
24 – Uso da classe JToolBar para criar barra de ferramentas 
 
25 – Como criar janelas secundárias com o uso da classe JDialog 
25.1 – Como criar janelas secundárias modais 
25.2 – Como criar janelas secundárias não-modais 
25.3 – Como criar janelas secundárias com JFrame 
 
26 – Uso da Classe JWindow para criar uma Splash Screen 
 
27 – Banco de Dados Relacionais 
27.1 – O que é um Banco de Dados? 
27.2 – Banco de Dados Relacionais 
27.3 – BD x SGBD 
27. 4 – Índice 
27.5 – Criando Banco de Dados 
27.6 – Criando Tabelas no MS ACCESS 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 4
28 – O que SQL? 
28.1 – Como usar SQL? 
28.2 – Tipos de Dados 
 
29 – ODBC/JDBC 
29.1 – O que é um Driver? 
29.2 – O que é ODBC? 
29.3 – O que é JDBC? 
29.4 – JDBC / ODBC 
29.5 – DriverManager 
29.6 – Como Criar Fontes de Dados ODBC 
 
30 – SQL – Java & Banco de Dados - Considerações Iniciais 
30.1 – Anatomia de uma Conexão e Testando a Conexão 
30.2 - Criando a Tabela – CREATE TABLE 
30.3 – Alterando Tabelas (Incluir ou Excluir Campos) ALTER TABLE 
30.4 – Excluir Tabelas – DROP TABLE 
30.5 – Inserindo Dados na Tabela (INSERT) 
30.6 – Consultas (SELECT) 
30.7 – Consultas Avançadas 
30.8 – Atualizando Dados (UPDATE) 
30.9 – Excluindo Dados (DELETE) 
30.10 – Exibindo Dados em uma Lista 
30.11 – Exibindo relatório com filtro e chamando outra janela 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 5
1 – Introdução 
 
1.1 – Java: O que é? 
 
O que faz ser tão especial a ponto de atrair a atenção da imprensa e 
programadores de todo mundo? 
 
É o fato de ter sido projetada levandoem conta o que havia de melhor e pior 
nos cinqüenta anos de existências das linguagens de programação. Java parte 
do que deu ou não certo nas linguagens que a precederam ou lhe foram 
contemporâneas. E suas características fazem-na uma linguagem muito útil 
nestes tempos de interconectividade e migração tecnológica constantes. 
 
Java é totalmente orientada a objetos é sua parente mais próxima é a 
linguagem C, C++. Programadores em C sentir-se-ão muito à vontade ao 
programarem em Java. 
 
1.2 – Java: Como surgiu? 
 
Java é ao mesmo tempo uma linguagem e um ambiente de programação. 
Criada pela Sun Microsystems, foi inicialmente destinada a pequenos 
dispositivos eletrônicos e quase fracassou. Comercialmente só se tornou um 
quando se voltou para a internet. Isto porque, graças a sua característica 
multiplataforma, possibilitou a inclusão de pequenas aplicações diretamente 
nas páginas web, independente do sistema usado no computador do cliente. 
 
A origem do nome Java por si só é material para um livro inteiro. Existem muita 
especulação e lenda associada aos motivos que levaram os criadores da 
linguagem Java – inicialmente chamada OAK, a batizaram-na como este nome 
e a associaram ao café. 
 
O mais importante é você saber que inicialmente a linguagem Java não incluía 
a internet em suas pretensões. Hoje tem se mostrado a linguagem ideal para 
desenvolvimento para internet e computação distribuída. Também está voltada 
às origens, ao ser cogitada pelas grandes indústrias como linguagem de 
programação para eletroeletrônicos e eletrodomésticos. 
 
O principal responsável pelo desenvolvimento da linguagem Java foi o 
engenheiro James Gosling que, a serviço Sun, comandou e orientou o grupo 
de trabalho responsável pelo desenvolvimento do ambiente de programação 
Java. O início do desenvolvimento da linguagem Java data de 1992, mas só 
em 1995, Java foi apresentada ao mundo como linguagem e ambiente de 
desenvolvimento multiplataforma. 
 
Atualmente o ambiente Java se apresenta de diversas formas, cabendo ao 
programador escolher a que mais o atrai. 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 6
1.3 – Java: Funcionamento 
 
Java é uma linguagem de programação totalmente orientada a objetos. Seu 
funcionamento, no que diz respeito ao desenvolvimento, é semelhante a outras 
linguagens: DIGITAR, COMPILAR, EXECUTAR, DEPURAR. Mas como já 
vimos, é uma das poucas, senão a única linguagem de programação que 
permite ao programador criar um único código que roda sem alteração em 
qualquer computador que possua uma Java Virtual Machine instalada. É 
justamente a JVM ou Máquina Virtual Java o segredo por trás da 
característica de multiplataforma, apresentada pelo ambiente de 
desenvolvimento Java. 
 
O diagrama seguinte ilustra o assunto. A independência de plataforma é a 
capacidade de o mesmo programa ser executado em diferentes plataformas e 
sistemas operacionais. Esta é uma das vantagens mais significativas da 
linguagem Java. 
 
 
 
Código Fonte 
Arquivo.java 
 
 
Compilador 
Java 
 
 
Binário Java 
Arquivo.class 
Interpretador 
Java 
(runtime Java ou 
JVM – Java 
Virtual 
Machine/Máquina 
Virtual Java) 
 
 
O código fonte é 
um arquivo 
digitado em 
qualquer editor de 
texto puro e salvo 
com extensão 
.Java 
 
 
 
 
Compilador 
 Javac 
O compilador Java gera 
um arquivo binário com o 
mesmo nome do arquivo 
gravado com a extensão. 
Java. Esse arquivo é o 
programa em Java e 
pode ser executado em 
qualquer máquina que 
possua a Java Virtual 
Machine instalada. É 
como se tivéssemos um 
computador dentro do 
outro (emulador). 
 JVM para WIN32 
 
 
 
 
JVM para 
SOLARIS 
 
 
 
 
JVM para Linux 
 
2 – O que é preciso para programar em Java? 
 
Uma das grandes vantagens de programar em Java e também um motivo que 
faz a linguagem contar com uma legião de fãs por todo o planeta está na 
gratuidade de suas ferramentas de desenvolvimentos. Com extensão do 
Access que fazer parte do pacote de aplicativos Office da Microsoft, tudo o 
mais que você precisa pode ser obtido na internet. 
 
O ambiente de desenvolvimento em si atende pelo nome de JDK – Java 
Development Kit até a versão 1.6.0, ou SDK – Software Development Kit, da 
versão 1.4.2 em diante. Mas é conveniente que além do JDK/SDK, você 
também use um Ambiente de Desenvolvimento Integrado ou IDE – Integrated 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 7
Development Environment, pois o JDK/SDK trabalha em uma janela do 
sistema e isto pode dificultar um pouco a vida de quem esta iniciando. 
 
Todos os exercícios desta apostila foram testados em duas configurações: 
Um AMD Duron 1000, com 128 de memória ram. 
Um AMD Sempron 2600 com 1 GB de ram. 
 
Creio que você não terá problemas para atingir os mesmos resultados. 
 
2.1 – Baixando o WinZip 
 
Baixe o Winzip a partir do site www.winzip.com. Usuários do Windows XP não 
necessitam deste programa. Qualquer versão deve servir. Você pode inclusive, 
usar descompactadores de outros fabricantes. Depois de baixar instale o 
aplicativo Winzip. 
 
2.2 – Baixando o JDK/SDK 
 
Baixe o JDK/SDK a partir do site java.sun.com. Tenha certeza de esta 
baixando a versão para Windows, pois na mesma página encontram-se 
versões para outros sistemas, como o Linux e Solaris. Site: www.sun.com. 
 
2.3 – Baixando a documentação do JDK/SDK 
 
A instalação da documentação do JDK/SDK é opcional, mas muito útil não só a 
quem está dando os primeiros passos na linguagem, como também para quem 
já está na estrada há mais tempo e uma vez ou outra precisa recorrer à 
documentação. O único inconveniente é estar em inglês, um obstáculo a quem 
não domina este idioma. Mas pode ficar tranqüilo porque a instalação da 
documentação é opcional. Baixe a documentação no www.sun.com. 
 
2.4 – Baixando o JCreator 
 
O JCreator é um programa da categoria IDE – Integrated Development 
Environment ou melhor, Ambiente de Desenvolvimento Integrado. Ele se 
integra ao JDK/SDK para tomar mais amigável o uso do ambiente. O JDK/DSK 
continua sendo o verdadeiro responsável pelo trabalho pesado. 
 
Optamos pelo JCreator por ele ser gratuito, pequeno, fácil de usar, estável e 
cumpre o que promete: edita o código-fonte, compila, executa e ajuda a 
depurar erros. Outras duas características muito úteis são endentações 
automáticas e o uso de cores para diferentes partes do código-fonte. 
 
Baixe o JCreator LE que é gratuito e atende as nossas necessidades. 
Baixe no site www.jcreator.com. 
 
Na mesma página em que você encontra a versão gratuita está a versão Pro 
que é paga e só funciona por 30 dias. Tenha certeza de estar baixando a 
versão LE que é gratuita e atende perfeitamente aos nossos objetivos. 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 8
2.5 – Configurando o JCreator 
 
Depois de instalado é hora de configurar o JCreator, quando você iniciar o 
JCreator pela primeira vez, ele será configurado. Ao dar o duplo clique no ícone 
do JCreator será exibida a caixa de diálogo: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Clique em Next para avançar, aceitando o JCreator como editor associado aos 
arquivos Java. Como já foi visto, os arquivos com a extensão Java nada mais 
são do que arquivos texto contendo o código-fonte escrito em linguagem Java.Caso o JCreator não localize automaticamente a pasta na qual você instalou o 
JDK/SDK, clique na opção Browse para localizá-la. Depois de localizada 
corretamente, clique em Next para avançar. 
 
 
 
 
 
 
 
. 
 
 
 
 
 
 
 
 
 
Se você instalou a documentação do JDK/SDK, clique no Browse para localiza-
la dentro da pasta de instalação do JDK/SDK. Depois de localizada 
corretamente, clique em Finish para concluir o processo de configuração do 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 9
JCreator. Da próxima vez que for executado, estes procedimentos não serão 
mais executados. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Tela inicial do JCreator 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 0
2.6 – Testando o funcionamento do JDK/SDK e do JCreator 
 
Para testar, tanto o JDK/SDK quando o JCreator, vamos iniciar um arquivo 
.Java em branco. Clicando em: File -> New -> File , depois clique em Next para 
avançar, depois clicando no botão com as... para escolher a pasta onde você 
vai guardar seus arquivos. Na opção name digite o nome do seu arquivo Java. 
E ao final clique em Finish. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A linguagem Java diferencia letras maiúsculas de minúsculas. O “A” e o “a”, em 
se tratando de programação em Java, são completamente diferentes. Portanto, 
digite o código apresentando, com a máxima atenção, sem se preocupar com a 
endentação que é automática no JCreator. Digite esse código: 
 
import javax.swing.*; 
public class teste extends JFrame{ 
 public teste(){ 
 super("Testando o JCreator"); 
 setSize(300, 150); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 teste app = new teste(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 1
Depois que você digitou o código, é preciso compilá-lo. Compilar um programa 
é o ato de transformar esse código-fonte em executável ou, no caso do Java, 
transformar o código-fonte em classe, pronta para ser interpretada pela 
Máquina Virtual Java, da qual falamos anteriormente. Para compilar um código-
fonte no JCreator, basta clicar sobre o botão Complie File. Ao fazer isso, será 
criada uma classe de com o nome de teste.class. 
 
Botão Compile File: 
 
Se tudo correu bem, será exibida na parte inferior do JCreator uma janela com 
a mensagem Process Completed. O processamento não é imediato. Aguarde 
até que alguma mensagem apareça ou o seu bom senso o alerte para algum 
problema. 
 
 
 
 
 
 
 
 
E se o JCreator encontrar algum erro durante a compilação ou execução de 
classe, não se preocupe que você será avisado disto. O JCreator interpreta as 
mensagens de erro do JDK/SDK e as exibe ao programador. Vamos a um 
exemplo prático. Troque a letra “t” (minúscula) do nome do programa teste, 
pela letra “T” (maiúsculas) e compile novamente. 
 
Repare que além da mensagem de erro, o JCreator aponta a linha da provável 
causa do erro. 
 
Nota: toda vez que você fizer alguma alteração no código-fonte terá de 
compilar o código-fonte de novo, para que as mudanças reflitam na classe. 
 
 
 
 
 
 
 
 
 
 
Mas se tudo correu bem durante a compilação do teste.Java, agora você tem 
uma classe pronta para se interpretada pela Máquina Virtual Java, Basta clicar 
no botão execute File do JCreator. 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 2
Esta classe que compilamos e executamos foi uma forma fácil e rápida de 
testar o ambiente e também de prepará-lo para os capítulos seguintes da 
apostila. A única coisa que ela faz é exibir uma janela com a frase na barra 
“Testando o Uso do JCreator”. Feche a janela e depois pressione qualquer 
tecla para fechar do console e retornar ao JCreator. 
Lembre-se que todos os exercícios e tarefas deste apostila são digitadas, 
compiladas e executadas de dentro do JCreator. Se você teve alguma 
dificuldade nos passos anteriores, repita-os até está seguro do processo: 
Digitar -> Compilar-> Executar -> Depurar quando se fizer necessário, pois 
são tarefas fundamentais para a compreensão e prática dos próximos 
capítulos. 
 
3 – Conceitos fundamentais de Programação em Java 
 
3.1 – Como programa em Java 
 
O processo utilizado na programação em Java é praticamente o mesmo das 
outras linguagens: Digitar -> Compilar-> Executar -> Depurar quando 
necessário. O diagrama seguinte ilustra o processo: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Digitação do Código 
.Java 
Início 
Depuração 
sim 
não 
Problemas na 
compilação? 
Executar 
.class 
Fim 
Compilar 
.class 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 3
3.2 – Anatomia de uma Classe 
 
Como vimos no capítulo anterior, a linguagem Java permite a criação de 
programas independentes, chamamos de aplicações. Também permite a 
criação de pequenas aplicações que rodam no navegador web, as applest 
scripts de servidor, os servlets também criação de componentes. Uma classe 
padrão: 
 
1. class nomeclasse { 
2. public static void main(String args[]){ 
3. //implementar código. 
4. } 
5.} 
 
A numeração das linhas não faz parte do programa. Ela serve para ajudar na 
identificação de cada linha, as quais vamos analisar a partir de agora. 
 
public – é um modificador de classes e métodos. Significa que a classe ou 
método é acessível externamente a esta classe. Isto permite que uma classe 
possa utilizar alguma funcionalidade de outra classe. 
 
static – é um outro modificador de métodos e indica que o método deve ser 
compartilhado por todos os objetos criados a partir desta classe. 
 
void – usado quando o método não retorna valor. 
 
main – método principal. Obrigatório em aplicações, pois indica ao compilador 
o início da execução da linha. 
 
(String args []) – trata-se de um vetor de strings e recebe os argumentos 
passados ao programa. 
 
{ e } (abre e fecha chaves) – é entre as chaves que todas as instruções do 
programa são colocadas. 
 
Java e Case Sensitive 
A linguagem Java é sensível ao contexto. Isto quer dizer que para o 
compilador, palavras iguais grafadas em maiúsculas ou minúsculas são 
diferentes. 
 
3.3 – Comentários 
 
Os comentários servem para facilitar o entendimento de um programa e 
documentar o código. Java possui algumas formas de inserir comentários: 
 
// (duas barras) – para inserir comentários de uma única linha. 
/* Exemplo de comentários 
 
/* e */ - (barra + asterisco e asterisco + barra) – para comentários de mais de 
uma linha. 
/* Exemplo de comentários */ 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d oz o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 4
3.4 – O uso do ponto-e-vírgula 
 
No final de cada instrução usa-se o ponto-e-vírgula. No início você pode ficar 
confuso quanto a usar ou não o ponto-e-vírgula, mas é questão de tempo para 
habituar. Além disso, o compilador informa o erro por ausência ou uso indevido 
do ponto-e-vírgula. 
 
int a, b; a = 10; b = 20; total = a + b; 
 
3.5 – Tipos de dados 
 
Java possui oito tipos primitivos que servem para armazenar números inteiros, 
ponto flutuante, valores booleanos e caracteres. Vamos conhece-las. 
 
Inteiros: 
Tipo Tamanho 
byte 1 byte 
short 2 bytes 
Int 4 bytes 
long 8 bytes 
 
Ponto Flutuante: 
 
Tipo Tamanho 
float 8 byte 
double 8 bytes 
 
Caractere: 
 
Tipo Tamanho 
char 2 bytes 
 
Booleano: 
 
Tipo Tamanho 
boolean 1 byte 
 
Todos esses tipos de variáveis são escritos em letras minúsculas e são 
usados, principalmente, na declaração de variáveis: 
 
byte idade; short CEP; char controle; 
 
Além dos oitos tipos básicos, uma variável pode ter uma classe como tipo, 
como no exemplo seguinte: String nome = “Java”; 
 
O uso da String é muito comum em Java. 
 
Alguns caracteres especiais que você pode usar são os seguintes: 
 
\n – new linha (quebra de linha) 
\t – tab (tabulação) 
\f – formfeed (avanço de formulário) 
\” – aspas duplas 
\’ – aspas simples 
\\ - barra invertida 
\r – return (retorno do carro) 
\b – backspace (retorno apagando) 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 5
3.6 - Conversão de tipo 
 
Às vezes necessitamos converter um tipo em outro. Um exemplo muito comum 
é quando recebemos dados em forma de String. Para que possamos efetuar 
operações matemáticas com esses dados, precisamos converte-los em 
números. 
 
Tabela de conversão de Tipos 
 
Para converter String em Faça isto 
int int novovalor = Integer.parseInt(valor) 
Float float novovalor = Integer.parseInt(valor) 
Double Int novovalor = Integer.parseInt(valor) 
 
String valor1 = “10”; 
String valor2 = “20”; 
String valor3 = “30”; 
 
int val1; 
float val2; 
double val3; 
 
val1 = Integer.parseInt(valor1); 
val2 = Float.parseFloat(valor2); 
val3 = Double.parseDouble(valor3); 
 
Ou também pode ser feita desta forma: 
 
String valor1 = “10”; 
String valor2 = “20”; 
String valor3 = “30”; 
 
int val1 = Integer.parseInt(valor1); 
float val2 = Float.parseFloat(valor2); 
double val3 = Double.parseDouble(valor3); 
 
Conversão entre tipos também pode ser implícitas ou explícitas. Veja os 
exemplos: 
 
Conversão implícita: 
 
short numero1 = 10; 
long numero2 = numero1; // convertemos short para long 
 
Conversão explícita 
 
long numero1 = 10; 
byte numero2 = (byte) numero1; //convertemos long em byte 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 6
3.7 – Operadores 
 Operadores 
Operador Nome Exemplo de uso 
+ Adição A + B 
- Subtração A - B 
/ Divisão A / B 
* Multiplicação A * B 
% Módulo A % B 
- Negativo (unário) A =-A 
++ Incremento A++ 
 
++A 
-- Decremento A— 
--A 
 
 Operadores lógicos e relacionais 
Operador Nome Exemplo de uso 
! NOT (não lógico) !A 
&& AND (E lógico) A && B 
|| OR (OU lógico) A || B 
== Igual A A == B 
!= Diferente A != B 
< 
> 
Menor que 
Maior que 
A < B 
A > B 
<= 
>= 
Menor ou igual 
Maior ou igual 
A <= B 
A >= B 
 
 Operadores Bitwise 
Operador Nome Exemplo de uso 
~ Inversão ~A 
& E (and) A & B 
| OU (OR) A | B 
^ XOU (XOR) A ^B 
<< Deslocamento à esquerda A << B 
>> Deslocamento à direita A >> B 
= atribuição A = B 
 
3.8 – Variáveis 
 
Variáveis são elementos mais básicos que um programa manipula. Uma 
variável é um espaço reservado na memória do computador para armazenar 
um determinado tipo de dados. As variáveis são declaradas e, opcionalmente, 
inicializadas com um valor qualquer. Caso você não atribua nenhum valor, o 
Java atribuirá um valor default. Variáveis podem ter qualquer nome, desde que 
não sejam nomes de palavras chaves que são usadas nos programas Java. E 
as variáveis não podem ser digitadas com espaço e nem acentos. 
 
Exemplos: nome123; nome_da_mae; NomeDoPai; Nome 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 7
3.9 – Funções matemáticas 
 
O que é? Java possui diversas funções matemáticas que podem ser utilizadas 
para simplificar cálculos e expressões. 
 
Como usar? O uso das funções matemáticas é muito simples: 
 
Função Significado 
Math.abs(valor) Retorna ao valor absoluto 
Math.sqrt(valor) Retorna a raiz quadrada 
Math.cos(valor) Retorna o co-seno 
Math.sin(valor) Retorna o seno 
Math.tan(valor) Retorna a tangente 
Math.acos(valor) Retorna ao arco co-seno 
Math.asin(valor) Retorna ao arco seno 
Math.atan(valor) Retorna ao arco tangente 
Math.round(valor) Arredonda para seu inteiro mais próximo 
Math.floor(valor) Arredonda o valor de um número para baixo 
Math.ceil(valor) Arredonda o valor de um número para cima 
Math.log(valor) Retorna o valor do logaritmo natural 
Math.min(valor,valor1) Retorna o valor mínimo entre 2 números 
Math.max(valor,valor1) Retorna o valor máximo entre 2 números 
Math.PI Retorna o valor de PI 
Math.E Valor da base do logaritmo natural 
Math.pow(base,potencia) Potenciação 
(Int) (Math.random()*100) Gera números aleatórios 
 
4 – Introdução a interface gráficas em Java 
 
Agora vamos falar sobre o pacote javax.swing, sua relação com o pacote 
java.awt e introduziremos a classe JFrame, componente principal dos 
aplicativos de interface gráfica em Java. 
 
4.1 – Entendo o Swing 
 
Contrário ao que muitos desenvolvedores e estudantes de Java pensam, o 
Swing não é um subtítulo do AWT (Abstract Window Toolkit). Em vez disso, o 
Swing é visto como uma cama disposta confortavelmente sobre o AWT. É 
praticamente impossível falar de Swing sem mencionar alguns aspectos 
relevantes e no momento oportuno veremos como eles se complementam. 
 
O papel principal do AWT era fornecer um conjunto de componentes gráficos 
destinados a facilitar a construção das interfaces gráficas para aplicativos e 
applets em versões mais antigas do Java. De fato, o AWT continua sendo uma 
das partes mais importantes do JFC (Java Foundation Classes) ao lado de 
Swing, Accessibility Java 2D e Drag na Drop. Java 2 é agora parte do AWT e o 
suporte Accessibility já está incluso no Swing. 
 
 
 
 
 
 
 
 
Compone
Button List Label Containe
r 
CheckBox 
Window 
Frame 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 8
Esta hierarquia não está completamente. Mostramos apenas alguns dos 
componentes para que o leitor veja como todos eles descendem de um 
componente em comum, ou seja, a classe Component. Atenção deve ser à 
classe Container, descendente direta da classe Component. 
Um Component tem uma representação gráfica, de modo que ele possa ser 
exibido na tela e forneça meios de interação com o usuário. A classe 
Componentdefine os métodos, propriedades e eventos que pode ser aplicados 
a todos os componentes derivados dessa classe, incluído as classes Button, 
Canvas, Label, Container, etc. 
 
O Swing é um grande grupo de componentes visuais escritos em Java puro 
(diferentes de alguns componentes AWT, que estão associados às 
capacidades de renderização de interfaces gráficas da plataforma em que o 
aplicativo está sendo executado). 
 
Um componente do Swing é reconhecido pela letra “J” antecedendo o nome do 
mesmo componente na hierarquia AWT. Assim, se no AWT temos o 
componente Button, em Swing esse componente é chamado de JButton. Label 
passa a ser chamado de JLabel, Frame de JFrame e assim por diante. Uma 
recomendação é que você investigue na documentação on-line a diferença, por 
exemplo, entre a funcionalidade de um button e um JButton 
 
4.11 – Uso do JFrame na construção de janelas no aplicativo 
 
Se você já leu outro material sobre interfaces gráficas em Java, deve estar se 
perguntando por que preferimos não iniciar a apostila falando de caixas de 
texto, rótulos, botões e outros componentes de interface. A razão é simples. A 
janela do aplicativo é a parte mais importante da interface, além de ser o 
fundamento sobre o qual os demais componentes serão construídos. Mas, o 
fato de não reservamos muita atenção ao estudo das janelas dos aplicativos 
provém do uso excessivo dos IDEs visuais (os famosos Ambientes de 
Desenvolvimento Integrado). 
 
A classe JFrame é uma versão melhorada de Frame que traz consigo suporte 
aos componentes Swing. Essa classe fornece todas as propriedades, métodos 
e eventos que precisamos para construir janela, tais como as que nossos 
usuários estão acostumados a visualizar em seus sistemas. Ora, o usuário 
sabe que a janela de um aplicativo pode ser minimizada, maximizada, 
redimensionada, e etc. Então vamos demonstrar a classe JFrame serve aos 
nossos propósitos. 
 
A janela principal de um aplicativo de interface gráfica em Java é criada como 
uma instância da classe JFrame (com exceção de Applets). A classe JFrame 
herda diretamente de Frame, como mostra a figura seguinte: 
 
 
 
 
 
 
 
 
JFrame 
Compone
Button List Labe
l 
Containe
r 
CheckBox 
Window 
Frame 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 1 9
Considerações a serem levadas antes de começar a programa. 
 
Quando o usuário encontrar esse símbolo em algum aplicativo, significa 
que a linha debaixo tem que ser digitada na mesma linha. 
Exemplo: public class NomePrograma 
 extends JFrame{ 
Quando você for digitar essa linha no JCreator, ela tem que ser digitada inteira 
pois o método ou comando quando for compilado, encontrá erro. 
 
4.12 - Janela normal 
 
import javax.swing.*; 
public class PrimeiraJanela extends JFrame{ 
 public PrimeiraJanela(){ 
 super("Nossa primeira janela"); 
 setSize(300, 150); 
 setVisible(true); } 
 public static void main(String args[]){ 
 PrimeiraJanela app = new PrimeiraJanela(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 
 
 
 
Vamos analisar cada linha do aplicativo. 
 
Tenha a certeza de importar esse pacote em todos os aplicativos de interface gráfica 
que estiver escrevendo: import javax.swing.*; 
 
Em seguida temos a definição da classe principal: 
 
public class PrimeiraJanela extends JFrame 
{ 
// a implementação da classe vai aqui. 
} 
 
Observe como a classe PrimeiraJanela, que será a janela do aplicativo, herda da 
classe JFrame. A partir desse ponto, nossa classe possui todas as propriedades, 
métodos e eventos que precisamos para que o aplicativo possa ser minimizado, 
maximizado e fechado por meios dos botões na barra de títulos. Dentro da classe 
temos o construtor padrão, que será invocado quando uma instância dessa classe for 
criada (o que acontecerá quando a janela for exibida na tela): 
 
import javax.swing.*; 
public class PrimeiraJanela extends JFrame 
{ 
 public PrimeiraJanela(){ 
 super("Nossa primeira janela"); 
 setSize(300, 150); 
 setVisible(true); } 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 0
Uma classe JFrame pode ser instanciada de duas maneiras: app = new() 
 
que cria uma instância da classe que é inicialmente invisível, mas sem um título 
na barra de títulos, ou: app = new(String Título) 
 
que cria uma instância da classe inicialmente invisível e com um objeto String 
representando o texto da barra de títulos. Assim, no construtor da classe 
PrimeiraJanela, invocamos o segundo construtor da superclasse JFrame 
fornecendo o texto que queremos como título da janela. 
 
Após a definição do título da janela, temos uma chamada ao método setSize: 
 
setSize(300, 150); - (300 – Altura e 150 – largura) 
 
Finalmente exibimos a janela efetuando uma chamada ao método setVisible o 
qual apresenta a seguinte sintaxe: setVisible(true); 
 
Para finalizar o código para a janela, temos a definição do método main(): 
 
public static void main(String args[]) 
{ 
 PrimeiraJanela app = new PrimeiraJanela(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
 
Na primeira linha criamos uma instância da classe PrimeiraJanela e a atribuímos à 
referência app, então acessamos o método setDefaultCloseOperation e fornecemos 
o valor EXIT_ON_CLOSE, que é uma das constantes da classe JFrame que define 
como o aplicativo vai se comportar quando o usuário tentar fechar a janela, seja 
clicando no botão fechar na barra de títulos ou pressionando ALT + F4. Veja no 
quadro outros valores que você pode usar: 
 
Valor da Constante Resultado 
 
 
HIDE_ON_CLOSE 
Faz com que a janela seja apenas ocultada quando o 
usuário tentar fechar o aplicativo, ou seja, o programa 
continua sua execução. O uso desse valor só é 
justificado quando queremos que a janela ou algum de 
seus componentes esteja disponível para acesso e 
manipulação, mas não queremos que isso seja visível 
aos olhos do usuário. 
 
 
DO_NOTHING_ON_CLOSE 
Faz com que o usuário não seja capaz de fechar a 
janela. Neste caso você deve efetuar algum 
processamento e fechar a janela, baseado em alguma 
ação específica no seu código. 
 
 
DISPOSE_ON_CLOSE 
Libera, ou seja, retira da memória, tanto a janela do 
aplicativo quanto seus componentes. A diferença entre 
este valor e HIDE_ON_CLOSE é que o primeiro oculta 
a janela e só então libera da memória. 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 1
4.2 - Janela Maximizada: setExtendedState(MAXIMIZED_BOTH); 
 
import javax.swing.*; 
public class JanelaMaximizada extends JFrame{ 
 public JanelaMaximizada(){ 
 super("Como exibir a janela maximizada"); 
 setSize(300, 150); 
 setVisible(true); 
 setExtendedState(MAXIMIZED_BOTH); 
 } 
 public static void main(String args[]){ 
 JanelaMaximizada app = new JanelaMaximizada(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
4.3 - Janela minimizada: setExtendedState(ICONIFIED); 
 
import javax.swing.*; 
public class JanelaMinimizada extends JFrame{ 
 public JanelaMinimizada(){ 
 super("Como exibir a janela minimizada"); 
 setSize(300, 150); 
 setVisible(true); 
 setExtendedState(ICONIFIED); 
 } 
 public static void main(String args[]){ 
 JanelaMinimizada app= new JanelaMinimizada(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
4.4 – Janela que não pode ser redimensionada: setResizable(false); 
 
Por padrão, as janelas dos aplicativos em Java podem ser redimensionadas 
em tempo de execução, ou seja, durante a execução do programa. Algumas 
vezes não queremos que o usuário seja capaz de alterar o tamanho da janela. 
Com a lista abaixo podemos fazer com que a janela não seja redimensionada: 
 
import javax.swing.*; 
public class TamanhoFixo extends JFrame{ 
 public TamanhoFixo(){ 
 super("Uma janela não dimensionável"); 
 setResizable(false); 
 setSize(300, 150); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 TamanhoFixo app = new TamanhoFixo(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 2
4.5 – Janela Centralizada: setLocationRelativeTo(null); 
 
import javax.swing.*; 
public class JanelaCentralizada extends JFrame{ 
 public JanelaCentralizada (){ 
 super("Janela Centralizada"); 
 setSize(300, 150); 
 setVisible(true); 
 setLocationRelativeTo(null); 
 } 
 public static void main(String args[]){ 
 JanelaCentralizada app = new JanelaCentralizada (); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
4.6 – Trocando a cor do fundo da janela 
 
Embora as propriedades mais importantes da janela do aplicativo já tenham 
sido vista a possibilidade de alterar a cor de fundo da janela só pôde ser 
apresentada agora. Isso se deve ao fato de a cor do fundo ser definida não 
para a classe JFrame, mas para o painel de conteúdo, ou seja o objeto 
Container que contém os controles da janela. 
O aplicativo seguinte exibe uma janela com a cor azul definida como cor de 
fundo. Observado que a cor de fundo para painel não afetará os demais 
controles da janela. Veja o aplicativo abaixo: 
 
import javax.swing.*; 
import java.awt.*; 
public class CorDeFundo extends JFrame{ 
 public CorDeFundo(){ 
 super("Definindo a cor de fundo para a janela"); 
 Container tela = getContentPane(); 
 tela.setBackground(Color.blue); 
 setSize(500, 100); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 CorDeFundo app = new CorDeFundo(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
 
 
 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 3
Temos que importar o pacote import java.awt.*;, pois a classe Container está 
nele. Veja como uma instância dessa classe é criada e atribuída à referência 
tela: Container tela = getContentPane(); 
 
Após essa declaração o tela é um objeto Container que representa a janela do 
aplicativo. Por meio dessa referência podemos adicionar e manipular os novos 
componentes. Comando que troca a cor de fundo da janela: 
tela.setBackground(Color.blue); 
 
Você pode usar: red, white, green, silver 
 
4.7 – Usando cores personalizadas para suas janelas 
 
Você sabia que você pode editar cores personalizadas para suas janelas de 
aplicativos Java? Com o comando setBackground (), isso é possível. 
Veja o exemplo: 
 
import javax.swing.*; 
import java.awt.*; 
public class CorDeFundo2 extends JFrame{ 
 public CorDeFundo2(){ 
 super("Definindo a cor de fundo para a janela"); 
 Container tela = getContentPane(); 
 tela.setBackground(new Color(255,128,128)); 
 setSize(500, 100); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 CorDeFundo2 app = new CorDeFundo2(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 tela.setBackground(new Color(255,128,128)); 
tela.setBackground(new Color(255,228,228)); 
 
tela.setBackground(new Color(255,255,204)); 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 4
4.8 – Definindo um ícone para a janela do aplicativo 
 
Nada contra o ícone padrão das janelas dos aplicativos Java. Mas, seria bem 
interessante se pudéssemos definir um ícone que lembra nossa marca, ou 
talvez um ícone que represente melhor a funcionalidade do aplicativo. 
 
import javax.swing.*; 
public class DefinirIcone extends JFrame{ 
 public DefinirIcone(){ 
 super("Como definir o ícone para a janela"); 
 ImageIcon icone = new ImageIcon("teste.gif"); 
 setIconImage(icone.getImage()); 
 setSize(300, 150); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 DefinirIcone app = new DefinirIcone(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
 
 
 
 
Após executar o aplicativo, observe como o ícone padrão (a xícara de café) foi 
alterada, substituída pela imagem que foi adicionada no aplicativo. 
 
A definição de um ícone para a janela pode ser realizada com apenas duas 
linhas de código: ImageIcon icone = new ImageIcon("teste.gif"); 
setIconImage(icone.getImage()); 
 
Na primeira linha criamos uma instância da classe ImageIcon e a atribuímos à 
referência ícone. Objetos desta classe podem ser criados por meio de nove 
construtores diferentes. Optamos por aquele que recebe o caminho e/ou nome 
da imagem como argumento. Veja sua sintaxe: 
ImagemIcon(String caminho_e_nome_da_imagem); 
ImageIcon("teste.gif"); 
 
Só precisamos fornecer o nome da imagem ou o caminho e o nome da 
imagem. É importante observar que esse caminho é sempre transformado em 
uma URL antes de ser passado para o construtor da classe. Assim, você pode 
fornecer uma imagem usando apenas o nome da imagem: 
ImageIcon icone = new ImageIcon("teste.gif"); 
 
O Caminho e o nome da imagem: 
ImageIcon icone = new ImageIcon("imagens/teste.gif"); 
 
Após iniciamos a classe ImageIcon, fazemos uso do método getImage dessa 
classe para obter a imagem e a definimos como ícone da janela com uma 
chamada a setIconImage da classe JFrame. setIconImage(icone.getImage()); 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 5
5 – Adicionando componentes JLabel ou rótulos na sua janela 
 
Freqüentemente chamado de rótulo, esse componente raramente tem seu 
conteúdo alterado e, quando usado corretamente, possibilita manipulações 
bem interessantes, como veremos a segui. Vamos começar escrevendo um 
aplicativo que permite instanciar as classe JLabel de maneiras diferentes. 
Esse aplicativo que adiciona JLabel, posiciona na janela, altera a cor e altera a 
fonte desse componente: 
 
import javax.swing.*; 
import java.awt.*; 
public class ExemploLabel extends JFrame{ 
 JLabel rotulo1,rotulo2,rotulo3,rotulo4; 
 public ExemploLabel(){ 
 super("Exemplo com Label"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 rotulo1 = new JLabel ("Nome"); 
rotulo2 = new JLabel ("Idade"); 
rotulo3 = new JLabel ("Telefone"); 
rotulo4 = new JLabel ("Celular"); 
 rotulo1.setBounds(50,20,80,20); 
 rotulo2.setBounds(50,60,80,20); 
 rotulo3.setBounds(50,100,80,20); 
 rotulo4.setBounds(50,140,80,20); 
 rotulo1.setForeground(Color.red); 
 rotulo2.setForeground(Color.blue);rotulo3.setForeground(new Color(190,152,142)); 
 rotulo4.setForeground(new Color(201,200,100)); 
 rotulo1.setFont(new Font("Arial",Font.BOLD,14)); 
 rotulo2.setFont(new Font("Comic Sans MS",Font.BOLD,16)); 
 rotulo3.setFont(new Font("Courier New",Font.BOLD,18)); 
 rotulo4.setFont(new Font("Times New Roman",Font.BOLD,20)); 
tela.add(rotulo1); 
tela.add(rotulo2); 
tela.add(rotulo3); 
tela.add(rotulo4); 
setSize(400, 250); 
setVisible(true); 
setLocationRelativeTo(null); 
 } 
 public static void main(String args[]){ 
 ExemploLabel app = new ExemploLabel(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
Veja o programa depois de executado: 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 6
 
 
Para entender melhor como funciona o programa destacamos alguns trechos 
do programa, sempre lembrando que temos que no começo do programa 
importar esses pacotes que adicionam conteúdos a janela: 
 
import javax.swing.*; 
import java.awt.*; 
 
5.1 - Apos fazermos as importações vamos criar os objetos do tipo JLabel: 
 
JLabel rotulo1,rotulo2,rotulo3,rotulo4; 
 
5.2 - Em seguida atribuir o conteúdo ao JLabel: 
 
rotulo1 = new JLabel ("Nome"); 
rotulo2 = new JLabel ("Idade"); 
rotulo3 = new JLabel ("Telefone"); 
rotulo4 = new JLabel ("Celular"); 
 
5.3 - Próximo passo definir o largura e altura do JLabel e a coluna e a linha que 
ele irá ocupar na janela. 
 
rotulo1.setBounds(50,20,80,20); 
rotulo2.setBounds(50,60,80,20); 
rotulo3.setBounds(50,100,80,20); 
rotulo4.setBounds(50,140,80,20); 
 
50 – Coluna, 20 – linha, 80 – largura, 20 - comprimento 
 
 
 
Coluna 50 
Linha 20 
Linha 60 
Linha 100 
Linha 140 
Comprimento 80 
Altura 20 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 7
5.4 - Próximo passo definir a cor da letra dos componentes JLabel, lembrando 
que se esses objetos não forem adicionados ao aplicativo, a cor default é preto. 
 
rotulo1.setForeground(Color.red); 
rotulo2.setForeground(Color.blue); 
 
5.5 - Esses dois trechos abaixo especifica como criar cores personalizadas 
para o componente JLabel. 
 
rotulo3.setForeground(new Color(190,152,142)); 
rotulo4.setForeground(new Color(201,200,100)); 
 
5.6 - E ainda podemos definir a fonte, o estilo e o tamanho da letra do 
componente JLabel. 
 
 rotulo1.setFont(new Font("Arial",Font.BOLD,14)); 
 rotulo2.setFont(new Font("Comic Sans MS",Font.BOLD,16)); 
 rotulo3.setFont(new Font("Courier New",Font.BOLD,18)); 
 rotulo4.setFont(new Font("Times New Roman",Font.BOLD,20)); 
 
Lembrando que o nome da fonte tem que ser definida como esta na opção de 
fonte do sistema. 
 
Exemplo: Comic Sans MS, 
 Courier New, 
Arial, Lucida Sans, 
Tahoma, 
Times New Roman 
 
Já o estilo pode ser definido como: 
 
Font.BOLD fonte em negrito 
Font.ITALIC fonte em itálico 
Font.PLAIN fonte normal 
 Font.BOLD+Font.ITALIC negrito e itálico 
 
E a numeração corresponde o tamanho da fonte. 
 
rotulo1.setFont(new Font("Arial",Font.BOLD,14)); 
 
Você pode definer 14, 16, 18, 20 entre outros tamanhos que fica a escolha do 
usuário. 
 
E finalmente o método tela que representa a janela deverá ser chamado, onde 
vai exibir o rótulo o conteúdo do JLabel na janela. 
 
tela.add(rotulo1); 
tela.add(rotulo2); 
tela.add(rotulo3); 
tela.add(rotulo4); 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 8
5.7 – Adicionando imagem ao componente JLabel 
 
É Possível exibir imagem em rótulos como instâncias da classe JLabel. Tais 
rótulos podem conter apenas imagens ou imagens e texto. O aplicativo 
seguinte mostra apenas uma imagem adicionada com um JLabel na janela. 
Exemplo: 
 
import javax.swing.*; 
import java.awt.*; 
public class LabelImagem extends JFrame{ 
 JLabel imagem; 
 public LabelImagem(){ 
 super("Uso da classe JLabel com Imagem"); 
 Container tela = getContentPane(); 
 ImageIcon icone = new ImageIcon("sapo.jpeg"); 
 imagem = new JLabel(icone); 
 tela.add(imagem); 
 setSize(500, 460); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 LabelImagem app = new LabelImagem(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 2 9
6 – Adicionando componentes JTextField ou caixa de texto na sua janela 
 
A classe JTextField possibilita a criação de caixas de texto de uma única linha. 
Os usos mais freqüentes desse controle são para receber e validar dados 
informados pelo usuário do aplicativo. Essa classe herda a maioria de seus 
atributos, eventos e métodos da classe JTextComponent. 
 
import javax.swing.*; 
import java.awt.*; 
public class ExemploJTextField extends JFrame{ 
 JLabel rotulo1,rotulo2,rotulo3,rotulo4; 
 JTextField texto1,texto2,texto3,texto4; 
 public ExemploJTextField (){ 
 super("Exemplo com JTextField"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 rotulo1 = new JLabel ("Nome"); 
 rotulo2 = new JLabel ("Idade"); 
 rotulo3 = new JLabel ("Telefone"); 
 rotulo4 = new JLabel ("Celular"); 
 texto1 = new JTextField(50); 
 texto2 = new JTextField(3); 
 texto3 = new JTextField(10); 
 texto4 = new JTextField(10); 
 rotulo1.setBounds(50,20,80,20); 
 rotulo2.setBounds(50,60,80,20); 
 rotulo3.setBounds(50,100,80,20); 
 rotulo4.setBounds(50,140,80,20); 
 texto1.setBounds(110,20,200,20); 
 texto2.setBounds(110,60,20,20); 
 texto3.setBounds(110,100,80,20); 
 texto4.setBounds(110,140,80,20); 
 tela.add(rotulo1); 
 tela.add(rotulo2); 
 tela.add(rotulo3); 
 tela.add(rotulo4); 
 tela.add(texto1); 
 tela.add(texto2); 
 tela.add(texto3); 
 tela.add(texto4); 
 setSize(400, 250); 
 setVisible(true); 
 setLocationRelativeTo(null); 
 } 
 public static void main(String args[]){ 
 ExemploJTextField app = new ExemploJTextField(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
Vejamos agora os trechos principais que fazem com que as caixas de texto 
apareçam na janela. 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 0
Declarar os objetos: TextField texto1,texto2,texto3,texto4; 
 
Estipular a quantidade de caracteres para as caixas de texto: 
texto1 = new JTextField(50); texto2 = new JTextField(3); 
 texto3 = new JTextField(10); texto4 = new JTextField(10); 
 
Especificar posicionamento das caixas: 
texto1.setBounds(110,20,200,20); 
texto2.setBounds(110,60,20,20); 
texto3.setBounds(110,100,80,20); 
texto4.setBounds(110,140,80,20); 
 
E chamar o método tela para exibir as caixas na janela: 
 tela.add(texto1); tela.add(texto2); tela.add(texto3);tela.add(texto4); 
 
Estamos vendo agora a janela com os componentes acionados. 
 
 
 
 
 
 
 
 
 
 
 
6.1 – Foco para uma caixa de texto 
Podemos também utilizar o comando requestFocus(); para apontar o foco 
para uma determinada caixa de texto: texto1. requestFocus(); 
 
6.2 – Cor da fonte para a caixa de texto 
Podemos também utilizar o comando setForeground(Color.cor); para alterar 
a cor da fonte da caixa de texto: texto1. setForeground(Color.cor); 
 
6.3 – Trocando a fonte, estilo e tamanho da fonte do JtextField: 
Texto1.setFont(new Font("NomeFonte",Font.ESTILO,TAMANHO)); 
 
6.4 – Alinhamento do texto de uma caixa de texto 
O comando setHorizontalAlignment() define o alinhamento dentro da caixa de 
texto: texto1. setHorizontalAlignment(JTextField.LEFT); 
 
setHorizontalAlignment (JTextField.RIGHT); posiciona o texto dentro da 
caixa de compra da direita pra esquerda, 
 
setHorizontalAlignment(JTextField.LEFT); posiciona o texto dentro da caixa 
da esquerda pra direita. 
 
setHorizontalAlignment(JTextField.CENTER); centraliza o texto dentro da 
caixa de texto. 
 
6.5 – Alteração da cor de fundo da caixa de texto 
Como visto anteriormente podemos efetuar essa alteração chamando o 
comando: texto1.setBackground(Color.blue); 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 1
7 – Adicionando componentes JButton ou botões a sua janela 
A classe JButton herda de AbstractButton, uma classe que herda de 
JComponet e define o comportamento básico para os botões e itens de menu. 
Como ocorre com instâncias da classe JLabel, objetos da classe JButton 
podem conter texto, texto e imagem ou apenas imagens.Seguindo os mesmo 
métodos dos outros aplicativos de como adicionar componentes na janela esse 
também segue o mesmo modelo. 
 
7.1 - Botão somente com texto: Veja o exemplo de botão sem imagem: 
import javax.swing.*; 
import java.awt.*; 
public class ExemploBotao extends JFrame{ 
 JButton botão; 
 public ExemploBotao(){ 
 super("Exemplo com JButton"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 botao = new JButton ("Procurar"); 
 botao.setBounds(50,20,100,20); 
 tela.add(botao); 
 setSize(400, 250); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 ExemploBotao app = new ExemploBotao(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
7.2 - Botão com texto e imagem: Exemplo de um botão com imagem: 
import java.awt.*; 
import java.awt.event.*; 
public class ExemploBotao extends JFrame{ 
 JButton botao; 
 ImageIcon icone; 
 public ExemploBotao(){ 
 super("Exemplo com JButton"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 icone = new ImageIcon("abrir.gif"); 
 botao = new JButton ("Abrir",icone); 
 botao.setBounds(50,20,100,20); 
 tela.add(botao); 
 setSize(300, 150); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 ExemploBotao app = new ExemploBotao(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 2
Analisando o programa, declaramos o ícone como ImageIcon, depois 
adicionamos a figura a ícone, icone = new ImageIcon("abrir.gif"); no final 
adicionamos o ícone junto ao texto do botão, botao = new JButton 
("Abrir",icone); e com o objeto tela, tela.add(botao); adicionamos o botão a 
janela. 
 
7.3 - Botão somente com imagem: Exemplo de botão somente com figura: 
 
import java.awt.event.*; 
public class ExemploBotao extends JFrame{ 
 JButton botao; 
 ImageIcon icone; 
 public ExemploBotao(){ 
 super("Exemplo com JButton"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 icone = new ImageIcon("abrir.gif"); 
 botao = new JButton (icone); 
 botao.setBounds(50,20,100,20); 
 tela.add(botao); 
 
 setSize(400, 250); 
 setVisible(true); 
 setLocationRelativeTo(null); 
 } 
 
 public static void main(String args[]){ 
 ExemploBotao app = new ExemploBotao(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
Muito simples fazer esse tipo de botão com o aplicativo anterior de botão com 
imagem basta você retirar o texto de dentro da linha que somente a imagem 
será adicionada, veja a linha: 
 
Linha do botão com texto e imagem: botão = new JButton (“Abrir”,icone); 
 
Linha do botão somente com imagem: botão = new JButton (icone); 
 
Aplicativo com os três botões 
 
 
 
 
 
 
 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 3
7.4 – Adicionando vários botões na janela 
Veja o exemplo: 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class ExemploBotao extends JFrame{ 
 JButton botao1,botao2,botao3,botao4; 
 public ExemploBotao(){ 
 super("Exemplo com JButton"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 botao1 = new JButton ("Procurar"); 
 botao2 = new JButton ("Voltar >>"); 
 botao3 = new JButton ("Próximo >>"); 
 botao4 = new JButton ("Abrir"); 
 
 botao1.setBounds(50,20,100,20); 
 botao2.setBounds(50,60,100,20); 
 botao3.setBounds(50,100,100,20); 
 botao4.setBounds(50,140,100,20); 
 
 tela.add(botao1); 
 tela.add(botao2); 
 tela.add(botao3); 
 tela.add(botao4); 
 setSize(400, 250); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 ExemploBotao app = new ExemploBotao(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 4
7.5 – Definir a cor de fundo para um componente JButton 
 
Para trocar a cor de fundo basta adicionar no aplicativo anterior as seguintes 
linhas: 
 botao1.setBackground(Color.yellow); 
 botao2.setBackground(Color.red); 
 botao3.setBackground(Color.blue); 
 botao4.setBackground(Color.white); 
 
 
 
7.6 – Definir teclas de atalho para objetos JButton 
 
Para definir as teclas de atalhos temos que importar o pacote: 
import java.awt.event.*; no inicio do programa 
 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
 
E adicione as seguintes linhas dentro do aplicativo anterior: 
botao1.setMnemonic(KeyEvent.VK_P); 
botao2.setMnemonic(KeyEvent.VK_V); 
botao3.setMnemonic(KeyEvent.VK_X); 
botao4.setMnemonic(KeyEvent.VK_S); 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 5
7.7 – Qual botão reagirá ao pressionamento da tecla enter 
 
Você pode passar o foco para um determinado botão assim que pressionar a 
tecla enter, Com o comando getRootPane().setDefaultButton(). Basta digitar 
o comando getRootPane().setDefaultButton(botao); 
 
botão é o nome do botão que você definiu no programa, nesse exemplo definir 
o último botão. 
 
Quando você pressionar a tecla Enter o botão que receberá ofoco piscará. 
 
Veja o resultado: 
 
 
 
 
7.8 - Alterando a cor do texto de um componente JButton 
 
Basta adicionar as seguintes linhas dentro do aplicativo: 
 
 botao1.setForeground(Color.blue); 
 botao2.setForeground(Color.green); 
 botao3.setForeground(Color.red); 
 botao4.setForeground(Color.pink); 
 
Resultado do programa: 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 6
8 - Adicionando componentes JPasswordField 
 
A classe JPasswordField possibilita a criação de caixas de texto para a 
digitação de senhas. Esta classe herda diretamente de JTextField e, portanto, 
permite a aplicação de todas as técnicas já vista na classe JTextField. 
 
No aplicativo abaixo vamos ver como funciona esse componente: 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class ExemploJPasswordField extends JFrame{ 
 JPasswordField caixa; 
 JLabel rotulo; 
 public ExemploJPasswordField(){ 
 super("Exemplo com JPasswordField"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 rotulo = new JLabel("Senha: "); 
 caixa = new JPasswordField(10); 
 rotulo.setBounds(50,20,100,20); 
 caixa.setBounds(50,60,100,20); 
 tela.add(rotulo); 
 tela.add(caixa); 
 setSize(400, 250); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 ExemploJPasswordField app = new ExemploJPasswordField(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
8.1 – Alterando a cor de fonte de um JPasswordField 
 
caixa.setForeground(Color.blue); você poderá trocar a cor da letra da caixa 
de texto. No caso essa letra vai ficar azul. 
 
 
8.2 – Definir uma cor personalizada para o componente JPasswordField 
 
Você também pode definir uma cor para letra conforme seu gosto usando essa 
linha caixa.setForeground(new Color(115,99,128)); 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 7
8.3 – Alterando a cor de fundo de um componente JPasswordField 
Você pode digitar essa linha no aplicativo anterior: 
 
caixa.setBackground(Color.yellow); 
 
A caixa de texto dentro ficará com a cor amarela por dentro 
 
8.4 – Cor de fundo personalizada para o componente JPasswordField 
Ao digitar essa linha no aplicativo dentro da caixa de texto ficará com a cor 
rosa. Onde você mesmo pode definir sua cor. 
 
caixa.setBackground(new Color(255,128,128)); 
 
8.5 – Alterar tipo de fonte, estilo e tamanho da letra do componente 
Com essa linha você pode alterar o estilo da fonte o tipo e o tamanho da fonte. 
 
caixa.setFont(new Font("Ariel",Font.BOLD,20)); 
 
Exemplos para essa fonte você pode aproveitar o exemplo do JTextField 
 
8.6 – Alterando o caracter que aparece no componente JPasswordField 
Você pode personalizar qual caracter vai aparecer na sua caixa de texto basta 
você digitar essa linha caixa.setEchoChar('*'); 
 
Dentro dos parênteses você pode adicionar qualquer caracter. 
 
9 – Controle JFormattedTextField para data, telefone, CEP, CPF 
 
O componente JFormattedTextField, similar a uma caixa de texto JTextField, 
fornece a possibilidade da validação e exibição de dados formatados em tempo 
real, ao seja, à medida que seu conteúdo é inserido. Esse componente é 
conhecido nas linguagens Visual Basic, Delphi, C++ como MaskEdit, ou 
simplesmente caixa de texto tipo máscara. 
 
A vantagem de usar uma caixa de texto tipo máscara é que o usuário é forçado 
a digitar os dados no formato especificado. O controle não aceita conteúdo que 
não siga os padrões predefinidos. 
 
Antes de usar o componente JFormattedTextField, é preciso entender o 
funcionamento da classe MaskFormatter (do pacote javax.swing.text). Essa 
classe é usada para especificar a máscara que será usada na caixa de texto. 
Para definir os caracteres que serão aceitos, você deve usar a seguinte tabela: 
 
Símbolo Valor Aceito 
# Um número 
? Uma letra 
A Uma letra ou um número 
* Qualquer conteúdo será aceito pelo controle 
U Uma letra convertida em maiúsculo 
L Uma letra convertida em minúsculos 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 8
Obtida a tabela vamos ver essa classe em ação. O aplicativo seguinte exibe 
quatro caixas de texto na qual deve ser digitado o CEP, TELEFONE, CPF e 
uma DATA qualquer. 
 
import javax.swing.*; 
import javax.swing.text.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.text.*; 
public class ExemploJFormattedTextField extends JFrame{ 
 
 JLabel rotulocep,rotulotel,rotulocpf,rotulodata; 
 JFormattedTextField cep,tel, cpf, data; 
 MaskFormatter mascaracep,mascaratel, mascaracpf, mascaradata; 
 
 public ExemploJFormattedTextField(){ 
 super("Exemplo com JFormattedTextField"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 
 rotulocep = new JLabel("CEP: "); 
 rotulotel = new JLabel("Telefone: "); 
 rotulocpf = new JLabel("CPF: "); 
 rotulodata = new JLabel("Data: "); 
 rotulocep.setBounds(50,40,100,20); 
 rotulotel.setBounds(50,80,100,20); 
 rotulocpf.setBounds(50,120,100,20); 
 rotulodata.setBounds(50,160,100,20); 
 
 try{ 
 mascaracep = new MaskFormatter("#####-###"); 
 mascaratel = new MaskFormatter("(##)####-####"); 
 mascaracpf = new MaskFormatter("#########-##"); 
 mascaradata = new MaskFormatter("##/##/####"); 
 mascaracep.setPlaceholderCharacter(‘_’); 
 mascaratel.setPlaceholderCharacter(‘_’); 
 mascaracpf.setPlaceholderCharacter(‘_’); 
 mascaradata.setPlaceholderCharacter(‘_’); 
 } 
 catch(ParseException excp){} 
 
 cep = new JFormattedTextField(mascaracep); 
 tel = new JFormattedTextField(mascaratel); 
 cpf = new JFormattedTextField(mascaracpf); 
 data = new JFormattedTextField(mascaradata); 
 
 cep.setBounds(150,40,100,20); 
 tel.setBounds(150,80,100,20); 
 cpf.setBounds(150,120,100,20); 
 data.setBounds(150,160,100,20); 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 3 9
 
 tela.add(rotulocep); 
 tela.add(rotulotel); 
 tela.add(rotulocpf); 
 tela.add(rotulodata); 
 tela.add(cep); 
 tela.add(tel); 
 tela.add(cpf); 
 tela.add(data); 
 
 setSize(400, 250); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 ExemploJFormattedTextField app = new ExemploJFormattedTextField(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
Para construir o exemplo, usamos as variáveis globais: 
FormattedTextField cep,tel, cpf, data; 
MaskFormatter mascaracep,mascaratel, mascaracpf, mascaradata; 
 
O código que inicializa a máscara foi inserido em um bloco try{ } de modo a 
evitar uma exceção: 
 try{ 
 mascaracep = new MaskFormatter("#####-###"); 
 mascaratel = new MaskFormatter("(##)####-####"); 
 mascaracpf = new MaskFormatter("#########-##"); 
 mascaradata = new MaskFormatter("##/##/####"); 
 mascaracep.setPlaceholderCharacter(‘_’); 
 mascaratel.setPlaceholderCharacter(‘_’); 
 mascaracpf.setPlaceholderCharacter(‘_’); 
 mascaradata.setPlaceholderCharacter(‘_’);} 
 catch(ParseException excp){} 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 4 0
Observe o uso do símbolo # para permitir somente valores numéricos e uma 
chamada ao método setPlaceholderCharacter para definir o caractere que 
será exibido como marcador para a máscara, geralmente o caractere de 
sublinhado. Essa máscara é fornecida como argumento para o construtor da 
classe JFormattedTextField: 
 
cep = new JFormattedTextField(mascaracep); 
tel = new JFormattedTextField(mascaratel); 
cpf = new JFormattedTextField(mascaracpf); 
data = new JFormattedTextField(mascaradata); 
9.1 – Adicionando cores na letra do JFormattedTextField 
Essas linhas podem ser adicionadas no programa anterior acima do objeto tela. 
 
 cep.setForeground(Color.blue); 
 tel.setForeground(Color.red); 
 cpf.setForeground(Color.green); 
 data.setForeground(new Color(255,128,128)); 
 
9.2 – Adicionando cores no fundo do JFormattedTextField 
Já esses códigos podem ser adicionados logo abaixo ao anterior. 
 
 cep.setBackground(Color.yellow); 
 tel.setBackground(Color.yellow); 
 cpf.setBackground(new Color(255,255,204)); 
 data.setBackground(new Color(255,255,204)); 
 
9.3 – Alterando o tipo, estilo, tamanho da fonte do JFormattedTextField 
 Já esses códigos podem ser adicionados logo abaixo ao anterior. 
 
 cep.setFont(new Font("Times New Roman",Font.BOLD,14)); 
 tel.setFont(new Font("Comic Sans MS",Font.PLAIN,14)); 
 cpf.setFont(new Font("Arial",Font.BOLD,14)); 
 data.setFont(new Font("Tahoma",Font.BOLD,14)); 
 
 
Aplicativo sendo executado depois de todos os códigos Java, estarem 
adicionados no aplicativo, veja os efeitos com as cores: 
 
 
 
 
 
 
 
 
 
 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 4 1
10 – Fazendo um JButton executar uma ação 
 
10.1 – Clicando no botão para fechar uma janela 
 
Exemplo: 
 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class ExemploBotaoSair extends JFrame{ 
 JButton botaosair; 
 public ExemploBotaoSair(){ 
 super("Exemplo com JButton"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 botaosair = new JButton ("Sair"); 
 botaosair.setBounds(100,50,100,20); 
 botaosair.addActionListener( 
 new ActionListener(){ 
 public void actionPerformed(ActionEvent e){ 
 System.exit(0); 
 } 
 } 
 ); 
 tela.add(botaosair); 
 setSize(300, 150); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 ExemploBotaoSair app = new ExemploBotaoSair(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
 
 
Como funciona o aplicativo sempre lembrando que temos que importar os 
pacotes: 
 
import javax.swing.*; - pacote que exibe conteúdos na janela 
import java.awt.*; - pacote que exibe conteúdos na janela 
import java.awt.event.*; - pacote que trabalha com os eventos 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 4 2
Como já visto em outros aplicativos: 
Declarar o componente como JButton: JButton botaosair; 
Atribuir o texto ao botão: botaosair = new JButton ("Sair"); 
Posicionar o botão na janela: botaosair.setBounds(100,50,100,20); 
E chama o objeto tela para exibir o componente: tela.add(botaosair); 
Explicando o funcionamento do botão: 
 botaosair.addActionListener( 
 new ActionListener(){ 
 public void actionPerformed(ActionEvent e){ 
 System.exit(0); 
 } 
 } 
 ); 
addActionListener – Adicionar ação a lista que estará dentro do botão. 
 
new ActionListener – Chamando nova ação a ser listada. 
 
public void actionPerformed(ActionEvent e) – 
performance da ação que o evento público chamara que será o exit. 
 
 System.exit(0); - Finaliza o aplicativo 
 
Use sempre essa lista para fazer qualquer botão funcionar ou chama algum 
evento: 
 nomebotao.addActionListener( 
 new ActionListener(){ 
 public void actionPerformed(ActionEvent e){ 
 } 
 } 
 ); 
 
10.2 – Clicando no mostrar para descobrir a senha digitada 
Um aplicativo simples mais muito interessante de ser observado, o usuário 
digita a senha e clicando em mostrar será habilitado um JLabel mostrando qual 
a senha que foi digitada. Veja o exemplo: 
 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class SenhaDigitada extends JFrame{ 
 JPasswordField caixa; 
 JLabel rotulo, exibir; 
 JButton mostrar; 
 public SenhaDigitada(){ 
 super("Exemplo com JPasswordField"); 
 Container tela = getContentPane(); 
 setLayout(null); 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 4 3
 
 rotulo = new JLabel("Senha: "); 
 caixa = new JPasswordField(10); 
 exibir = new JLabel("A senha digitada é: "); 
 mostrar = new JButton("Mostrar"); 
 exibir.setVisible(false); 
 rotulo.setBounds(50,20,100,20); 
 caixa.setBounds(50,60,200,20); 
 exibir.setBounds(50,120,200,20); 
 mostrar.setBounds(150,100,80,20); 
 mostrar.addActionListener( 
 new ActionListener(){ 
 public void actionPerformed(ActionEvent e){ 
 String senha = new String(caixa.getPassword()); 
 exibir.setVisible(true); 
 exibir.setText(senha); 
 } 
 } 
 ); 
 tela.add(rotulo); 
 tela.add(caixa); 
 tela.add(exibir); 
 tela.add(mostrar); 
 setSize(400, 250); 
 setVisible(true); 
 } 
 public static void main(String args[]){ 
 SenhaDigitada app = new SenhaDigitada(); 
 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 } 
} 
Um aplicativo muito fácil de ser compreendido, de diferente ao anterior que já 
foi visto na parte JPasswordField só acrescentamos um novo JLabel que 
quando iniciado vem oculto, e dentro do evento do botão criamos uma variável 
chamada senha do tipo String, onde ela recebe uma String que vem da caixa 
da senha e então é convertida em caracteres normal. E depois será habilitado 
novamente o JLabel. 
 
 
 
A p o s t i l a d e J a v a 2 C o m B a n c o d e D a d o s
 
A l e k s a n d r a R . C a r d o z o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P á g i n a 4 4
10.3 – Clicando no botão somar e será mostrada a soma dos números 
 
Já nesse aplicativo alguns métodos novos foram aplicados, esse pede um 
pouquinho de nossa atenção, alguns componentes foram colocados ao lado 
para não ficar muito extenso e ser mais fácil de compreender. 
 
Veja o exemplo: 
 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class Soma extends JFrame{ 
 JLabel rotulo1, rotulo2,exibir; 
 JTextField texto1,texto2; 
 JButton somar; 
 public Soma(){ 
 super("Exemplo de soma"); 
 Container tela = getContentPane(); 
 setLayout(null); 
 rotulo1 = new JLabel("1º Número: "); 
 rotulo2 = new JLabel("2º

Outros materiais