Вы находитесь на странице: 1из 208

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Apostila de Java 2 Com Banco de Dados 1 – Introdução 1.1 – Java:

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

fonte para a caixa de texto 6.3 – Trocando a fonte, estilo e tamanho da letra
fonte para a caixa de texto 6.3 – Trocando a fonte, estilo e tamanho da letra

AleksandraR.Cardozo

Página1

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 6.4 – Alinhamento do texto de uma caixa de texto 6.5 – Alteração da

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

para criar botões de opção 15 – Fazendo um aplicativo com ComboBox CheckBox RadioButton AleksandraR.Cardozo Página
para criar botões de opção 15 – Fazendo um aplicativo com ComboBox CheckBox RadioButton AleksandraR.Cardozo Página

AleksandraR.Cardozo

Página2

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 16 – Como adicionar dica aos seus botões 16.1 – Adicionar cores diferentes as

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

SGBD 27. 4 – Índice 27.5 – Criando Banco de Dados 27.6 – Criando Tabelas no
SGBD 27. 4 – Índice 27.5 – Criando Banco de Dados 27.6 – Criando Tabelas no

AleksandraR.Cardozo

Página3

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 28 – O que SQL? 28.1 – Como usar SQL? 28.2 – Tipos de

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

Exibindo Dados em uma Lista 30.11 – Exibindo relatório com filtro e chamando outra janela AleksandraR.Cardozo
Exibindo Dados em uma Lista 30.11 – Exibindo relatório com filtro e chamando outra janela AleksandraR.Cardozo

AleksandraR.Cardozo

Página4

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 1 – Introdução 1.1 – Java: O que é? O que programadores de todo

1 – Introdução

1.1 – Java: O que é?

O que

programadores de todo mundo?

faz ser tão especial

a

ponto de atrair a

atenção da imprensa

e

É o fato de ter sido projetada levando em 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.

Java se apresenta de diversas formas, cabendo ao programador escolher a que mais o atrai. AleksandraR.Cardozo
Java se apresenta de diversas formas, cabendo ao programador escolher a que mais o atrai. AleksandraR.Cardozo

AleksandraR.Cardozo

Página5

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 1.3 – Java: Funcionamento Java é uma linguagem de programação totalmente orientada a

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

Compilador

Binário Java

Interpretador Java (runtime Java ou JVM – Java Virtual Machine/Máquina Virtual Java)

Arquivo.java

Java

Arquivo.class

   

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

O código fonte é um arquivo digitado em qualquer editor de texto puro e salvo com extensão .Java

Compilador

Javac

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

JDK/SDK , você também use um Ambiente de Desenvolvimento Integrado ou IDE – Integrated AleksandraR.Cardozo Página
JDK/SDK , você também use um Ambiente de Desenvolvimento Integrado ou IDE – Integrated AleksandraR.Cardozo Página

AleksandraR.Cardozo

Página6

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Development Environment, pois o JDK/SDK trabalha em uma janela do sistema e isto pode

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.

de estar baixando a versão LE que é gratuita e atende perfeitamente aos nossos objetivos. AleksandraR.Cardozo
de estar baixando a versão LE que é gratuita e atende perfeitamente aos nossos objetivos. AleksandraR.Cardozo

AleksandraR.Cardozo

Página7

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 2.5 – Configurando o JCreator Depois de instalado é hora de configurar o JCreator,

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:

no ícone do JCreator será exibida a caixa de diálogo: Clique em Next para avançar, aceitando

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.

.

de localizada corretamente, clique em Next para avançar. . Se você instalou a documentação do JDK/SDK,

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

de localizada corretamente, clique em Finish para concluir o processo de configuração do AleksandraR.Cardozo Página 8
de localizada corretamente, clique em Finish para concluir o processo de configuração do AleksandraR.Cardozo Página 8

AleksandraR.Cardozo

Página8

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados JCreator. Da próxima vez que for executado, estes procedimentos não serão mais

JCreator. Da próxima vez que for executado, estes procedimentos não serão mais executados.

que for executado, estes procedimentos não serão mais executados. Tela inicial do JCreator AleksandraR.Cardozo Página 9

Tela inicial do JCreator

que for executado, estes procedimentos não serão mais executados. Tela inicial do JCreator AleksandraR.Cardozo Página 9
que for executado, estes procedimentos não serão mais executados. Tela inicial do JCreator AleksandraR.Cardozo Página 9
que for executado, estes procedimentos não serão mais executados. Tela inicial do JCreator AleksandraR.Cardozo Página 9

AleksandraR.Cardozo

Página9

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 2.6 – Testando o funcionamento do JDK/SDK e do JCreator Para testar, tanto o

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

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.

avançar, depois clicando no botão com as

clique em Finish. avançar, depois clicando no botão com as A linguagem Java diferencia letras maiúsculas

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);

}

}

args[]){ teste app = new teste(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página1 0
args[]){ teste app = new teste(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página1 0
args[]){ teste app = new teste(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página1 0

AleksandraR.Cardozo

Página10

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Depois que você digitou o código, é preciso compilá-lo. Compilar um programa é o

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:

classe de com o nome de teste.class. Botão Compile File: Se tudo correu bem, será exibida

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.

apareça ou o seu bom senso o alerte para algum problema. E se o JCreator encontrar

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.

de novo, para que as mudanças reflitam na classe. Mas se tudo correu bem durante a

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.

se interpretada pela Máquina Virtual Java, Basta clicar no botão execute File do JCreator. AleksandraR.Cardozo Página11
se interpretada pela Máquina Virtual Java, Basta clicar no botão execute File do JCreator. AleksandraR.Cardozo Página11
se interpretada pela Máquina Virtual Java, Basta clicar no botão execute File do JCreator. AleksandraR.Cardozo Página11

AleksandraR.Cardozo

Página11

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Esta classe que compilamos e executamos foi uma forma fácil e rápida de testar

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:

Início

necessário. O diagrama seguinte ilustra o processo: Início Digitação do Código .Java Compilar .class Problemas na

Digitação do Código .Java

ilustra o processo: Início Digitação do Código .Java Compilar .class Problemas na compilação? não

Compilar

.class

Início Digitação do Código .Java Compilar .class Problemas na compilação? não Depuração sim Executar
Problemas na compilação? não
Problemas na
compilação?
não
Depuração
Depuração
sim
sim

Executar

.class

Compilar .class Problemas na compilação? não Depuração sim Executar .class Fim AleksandraR.Cardozo Página1 2

Fim

Compilar .class Problemas na compilação? não Depuração sim Executar .class Fim AleksandraR.Cardozo Página1 2
Compilar .class Problemas na compilação? não Depuração sim Executar .class Fim AleksandraR.Cardozo Página1 2

AleksandraR.Cardozo

Página12

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 3.2 – Anatomia de uma Classe Como vimos no capítulo anterior, a linguagem Java

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 */

+ barra) – para comentários de mais de uma linha. /* Exemplo de comentários */ AleksandraR.Cardozo
+ barra) – para comentários de mais de uma linha. /* Exemplo de comentários */ AleksandraR.Cardozo

AleksandraR.Cardozo

Página13

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 3.4 – O uso do ponto-e-vírgula No final de cada instrução usa-se o ponto-e-vírgula.

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;

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.

total = a + b;

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)

- barra invertida \r – return (retorno do carro) \b – backspace (retorno apagando) AleksandraR.Cardozo Página1
- barra invertida \r – return (retorno do carro) \b – backspace (retorno apagando) AleksandraR.Cardozo Página1

AleksandraR.Cardozo

Página14

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 3.6 - Conversão de tipo Às vezes necessitamos converter um tipo em outro. Um

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

explícita long numero1 = 10; byte numero2 = (byte) numero1; //convertemos long em byte AleksandraR.Cardozo Página1
explícita long numero1 = 10; byte numero2 = (byte) numero1; //convertemos long em byte AleksandraR.Cardozo Página1

AleksandraR.Cardozo

Página15

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 3.7 – Operadores Operadores Operador Nome Exemplo de uso + Adição A +

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

A < B

>

Maior que

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

ser digitadas com espaço e nem acentos. Exemplos: nome123; nome_da_mae; NomeDoPai; Nome AleksandraR.Cardozo Página1 6
ser digitadas com espaço e nem acentos. Exemplos: nome123; nome_da_mae; NomeDoPai; Nome AleksandraR.Cardozo Página1 6

AleksandraR.Cardozo

Página16

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 3.9 – Funções matemáticas O que é? Java possui diversas funções matemáticas que

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

List

Button

Containe

Window

Frame

Label

CheckBox

já está incluso no Swing. Compone List Button Containe Window Frame Label CheckBox AleksandraR.Cardozo Página1 7
já está incluso no Swing. Compone List Button Containe Window Frame Label CheckBox AleksandraR.Cardozo Página1 7

AleksandraR.Cardozo

Página17

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Esta hierarquia não está completamente. Mostramos apenas alguns dos componentes para

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 Component define 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:

Compone

List

Button

Containe

Window

Labe

Frame

JFrame

CheckBox

mostra a figura seguinte: Compone List Button Containe Window Labe Frame JFrame CheckBox AleksandraR.Cardozo Página1 8
mostra a figura seguinte: Compone List Button Containe Window Labe Frame JFrame CheckBox AleksandraR.Cardozo Página1 8

AleksandraR.Cardozo

Página18

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Considerações a serem levadas antes de começar a programa. Quando o usuário encontrar

Considerações a serem levadas antes de começar a programa.

a serem levadas antes de começar a programa. Quando o usuário encontrar esse símbolo em algum

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.

o método ou comando quando for compilado, encontrá erro. 4.12 - Janela normal import javax.swing.*; public

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); } }

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Vamos analisar cada linha do aplicativo. Tenha a certeza de

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); }

super("Nossa primeira janela"); setSize(300, 150); setVisible(true); } AleksandraR.Cardozo Página1 9
super("Nossa primeira janela"); setSize(300, 150); setVisible(true); } AleksandraR.Cardozo Página1 9

AleksandraR.Cardozo

Página19

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Uma classe JFrame pode ser instanciada de duas maneiras: app = new() que cria

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.

valor e HIDE_ON_CLOSE é que o primeiro oculta a janela e só então libera da memória.
valor e HIDE_ON_CLOSE é que o primeiro oculta a janela e só então libera da memória.

AleksandraR.Cardozo

Página20

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 4.2 - Janela Maximizada: setExtendedState(MAXIMIZED_BOTH); import javax.swing.*; public

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);

}

}

app = new TamanhoFixo(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 1
app = new TamanhoFixo(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 1

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 4.5 – Janela Centralizada: setLocationRelativeTo(null); import javax.swing.*; public

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);

}

}

app = new CorDeFundo(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 2
app = new CorDeFundo(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 2
app = new CorDeFundo(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 2

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Temos que importar o pacote import java.awt.*;, pois a classe Container está nele.

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);

}

}

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } tela.setBackground(new Color(255 128 128));
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } tela.setBackground(new Color(255 128 128));
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } tela.setBackground(new Color(255 128 128));

tela.setBackground(new Color(255 128 128));

tela.setBackground(new Color(255 228 228));

tela.setBackground(new Color(255,255,204));

tela.setBackground(new Color(255 228 228)); tela.setBackground(new Color(255,255,204)); AleksandraR.Cardozo Página 2 3
tela.setBackground(new Color(255 228 228)); tela.setBackground(new Color(255,255,204)); AleksandraR.Cardozo Página 2 3

AleksandraR.Cardozo

Página23

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 4.8 – Definindo um ícone para a janela do aplicativo Nada contra o ícone

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);

}

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } Após executar o aplicativo, observe como o ícone padrão

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());

janela com uma chamada a setIconImage da classe JFrame. setIconImage(icone.getImage()); AleksandraR.Cardozo Página 2 4
janela com uma chamada a setIconImage da classe JFrame. setIconImage(icone.getImage()); AleksandraR.Cardozo Página 2 4

AleksandraR.Cardozo

Página24

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 5 – Adicionando componentes JLabel ou rótulos na sua janela Freqüentemente chamado de

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:

} } Veja o programa depois de executado: AleksandraR.Cardozo Página 2 5
} } Veja o programa depois de executado: AleksandraR.Cardozo Página 2 5

AleksandraR.Cardozo

Página25

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Para entender melhor como funciona o programa destacamos alguns trechos do programa,
A postiladeJava2ComBancodeDados Para entender melhor como funciona o programa destacamos alguns trechos do programa,

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

Comprimento 80 Linha 20 Linha 60 Linha 100 Altura 20 Linha 140
Comprimento 80
Linha 20
Linha 60
Linha 100
Altura 20
Linha 140

Coluna 50

comprimento Comprimento 80 Linha 20 Linha 60 Linha 100 Altura 20 Linha 140 Coluna 50 AleksandraR.Cardozo
comprimento Comprimento 80 Linha 20 Linha 60 Linha 100 Altura 20 Linha 140 Coluna 50 AleksandraR.Cardozo

AleksandraR.Cardozo

Página26

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 5.4 - Próximo passo definir a cor da letra dos componentes JLabel, lembrando que

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

componente JLabel.

-

E

ainda

podemos

definir

a fonte,

o

estilo e

o

tamanho da letra do

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);

na janela. tela.add(rotulo1); tela.add(rotulo2); tela.add(rotulo3); tela.add(rotulo4); AleksandraR.Cardozo Página 2 7
na janela. tela.add(rotulo1); tela.add(rotulo2); tela.add(rotulo3); tela.add(rotulo4); AleksandraR.Cardozo Página 2 7

AleksandraR.Cardozo

Página27

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 5.7 – Adicionando imagem ao componente JLabel É Possível exibir imagem em rótulos

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);

}

}

app = new LabelImagem(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 8
app = new LabelImagem(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 8
app = new LabelImagem(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 2 8

AleksandraR.Cardozo

Página28

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 6 – Adicionando componentes JTextField ou caixa de texto na sua janela A classe

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.

agora os trechos principais que fazem com que as caixas de texto apareçam na janela. AleksandraR.Cardozo
agora os trechos principais que fazem com que as caixas de texto apareçam na janela. AleksandraR.Cardozo

AleksandraR.Cardozo

Página29

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Declarar os objetos : TextField texto1,texto2,texto3,texto4; Estipular a quantidade de

Declarar os objetos: TextField texto1,texto2,texto3,texto4;

Estipular a quantidade de caracteres para as caixas de texto:

texto1 = new JTextField(50); texto3 = new JTextField(10);

texto2 = new JTextField(3); 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.

Estamos vendo agora a janela com os componentes acionados. 6.1 – Foco para uma caixa de

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

o

Como

comando: texto1.setBackground(Color.blue);

visto

anteriormente

podemos

efetuar

essa

alteração

chamando

visto anteriormente podemos efetuar essa alteração chamando AleksandraR.Cardozo Página 3 0
visto anteriormente podemos efetuar essa alteração chamando AleksandraR.Cardozo Página 3 0

AleksandraR.Cardozo

Página30

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 7 – Adicionando componentes JButton ou botões a sua janela A classe JButton herda

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);

}

}

app = new ExemploBotao(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 3 1
app = new ExemploBotao(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 3 1

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Analisando o programa, declaramos o ícone como ImageIcon , depois adicionamos a figura

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

botão somente com imagem: botão = new JButton (icone); Aplicativo com os três botões AleksandraR.Cardozo Página
botão somente com imagem: botão = new JButton (icone); Aplicativo com os três botões AleksandraR.Cardozo Página
botão somente com imagem: botão = new JButton (icone); Aplicativo com os três botões AleksandraR.Cardozo Página

AleksandraR.Cardozo

Página32

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 7.4 – Adicionando vários botões na janela Veja o exemplo: import javax.swing.*;

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);

}

}

app = new ExemploBotao(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 3 3
app = new ExemploBotao(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 3 3
app = new ExemploBotao(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 3 3

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 7.5 – Definir a cor de fundo para um componente JButton Para trocar a

7.5 – Definir a cor de fundo para um componente JButton

Para trocar a cor de fundo basta adicionar no aplicativo linhas:

botao1.setBackground(Color.yellow);

botao2.setBackground(Color.red);

botao3.setBackground(Color.blue);

botao4.setBackground(Color.white);

anterior as seguintes

botao4.setBackground(Color.white); anterior as seguintes 7.6 – Definir teclas de atalho para objetos JButton Para

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);

botao3.setMnemonic(KeyEvent.VK_X); botao4.setMnemonic(KeyEvent.VK_S); AleksandraR.Cardozo Página 3 4
botao3.setMnemonic(KeyEvent.VK_X); botao4.setMnemonic(KeyEvent.VK_S); AleksandraR.Cardozo Página 3 4
botao3.setMnemonic(KeyEvent.VK_X); botao4.setMnemonic(KeyEvent.VK_S); AleksandraR.Cardozo Página 3 4

AleksandraR.Cardozo

Página34

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 7.7 – Qual botão reagirá ao pressionamento da tecla enter Você pode passar o

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á o foco piscará.

Veja o resultado:

o botão que receberá o foco piscará. Veja o resultado: 7.8 - Alterando a cor do

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:

botao3.setForeground(Color.red); botao4.setForeground(Color.pink); Resultado do programa: AleksandraR.Cardozo Página 3 5
botao3.setForeground(Color.red); botao4.setForeground(Color.pink); Resultado do programa: AleksandraR.Cardozo Página 3 5
botao3.setForeground(Color.red); botao4.setForeground(Color.pink); Resultado do programa: AleksandraR.Cardozo Página 3 5

AleksandraR.Cardozo

Página35

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 8 - Adicionando componentes JPasswordField A classe JPasswordField possibilita a

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);

}

}

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 8.1 – Alterando a cor de fonte de um JPasswordField

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));

letra conforme seu gosto usando essa linha caixa.setForeground(new Color(115,99,128)); AleksandraR.Cardozo Página 3 6
letra conforme seu gosto usando essa linha caixa.setForeground(new Color(115,99,128)); AleksandraR.Cardozo Página 3 6

AleksandraR.Cardozo

Página36

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 8.3 – Alterando a cor de fundo de um componente JPasswordField Você pode digitar

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

U Uma letra convertida em maiúsculo L Uma letra convertida em minúsculos AleksandraR.Cardozo Página 3 7
U Uma letra convertida em maiúsculo L Uma letra convertida em minúsculos AleksandraR.Cardozo Página 3 7

AleksandraR.Cardozo

Página37

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Obtida a tabela vamos ver essa classe em ação. O aplicativo seguinte exibe quatro

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

mascaracpf = new MaskFormatter("#########-##"); mascaradata = new MaskFormatter("##/##/####"); mascaracep.setPlaceholderCharacter(‘_’); mascaratel.setPlaceholderCharacter(‘_’); mascaracpf.setPlaceholderCharacter(‘_’); mascaradata.setPlaceholderCharacter(‘_’);

= new MaskFormatter("(##)####-####");

}

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);

cpf.setBounds(150,120,100,20); data.setBounds(150,160,100,20); AleksandraR.Cardozo Página 3 8
cpf.setBounds(150,120,100,20); data.setBounds(150,160,100,20); AleksandraR.Cardozo Página 3 8

AleksandraR.Cardozo

Página38

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados tela.add(rotulocep); tela.add(rotulotel); tela.add(rotulocpf); tela.add(rotulodata);

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);

}

}

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Para construir o exemplo, usamos as variáveis globais:

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

mascaracpf = new MaskFormatter("#########-##"); mascaradata = new MaskFormatter("##/##/####"); mascaracep.setPlaceholderCharacter(‘_’); mascaratel.setPlaceholderCharacter(‘_’); mascaracpf.setPlaceholderCharacter(‘_’); mascaradata.setPlaceholderCharacter(‘_’);

= new MaskFormatter("(##)####-####");

}

catch(ParseException excp){}

= new MaskFormatter("(##)####-####"); } catch(ParseException excp){} AleksandraR.Cardozo Página 3 9
= new MaskFormatter("(##)####-####"); } catch(ParseException excp){} AleksandraR.Cardozo Página 3 9

AleksandraR.Cardozo

Página39

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Observe o uso do símbolo # para permitir somente valores numéricos e uma chamada

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:

todos os códigos Java, estarem adicionados no aplicativo, veja os efeitos com as cores: AleksandraR.Cardozo Página
todos os códigos Java, estarem adicionados no aplicativo, veja os efeitos com as cores: AleksandraR.Cardozo Página
todos os códigos Java, estarem adicionados no aplicativo, veja os efeitos com as cores: AleksandraR.Cardozo Página

AleksandraR.Cardozo

Página40

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 10 – Fazendo um JButton executar uma ação 10.1 – Clicando no botão para

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);

}

}

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Como funciona o aplicativo sempre lembrando que temos que

Como funciona o aplicativo sempre lembrando que temos que importar os pacotes:

import javax.swing.*; import java.awt.*; import java.awt.event.*;

- pacote que exibe conteúdos na janela - pacote que exibe conteúdos na janela - pacote que trabalha com os eventos

na janela - pacote que exibe conteúdos na janela - pacote que trabalha com os eventos
na janela - pacote que exibe conteúdos na janela - pacote que trabalha com os eventos

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Como já visto em outros aplicativos: Declarar o componente como JButton: JButton

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);

com JPasswordField"); Container tela = getContentPane(); setLayout(null); AleksandraR.Cardozo Página 4 2
com JPasswordField"); Container tela = getContentPane(); setLayout(null); AleksandraR.Cardozo Página 4 2

AleksandraR.Cardozo

Página42

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados rotulo = new JLabel("Senha: "); caixa = new JPasswordField(10); exibir = new

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.

e então é convertida em caracteres normal. E depois será habilitado novamente o JLabel. AleksandraR.Cardozo Página
e então é convertida em caracteres normal. E depois será habilitado novamente o JLabel. AleksandraR.Cardozo Página
e então é convertida em caracteres normal. E depois será habilitado novamente o JLabel. AleksandraR.Cardozo Página

AleksandraR.Cardozo

Página43

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 10.3 – Clicando no botão somar e será mostrada a soma dos números Já

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º Número: "); texto1 = new JTextField(5); texto2 = new JTextField(5); exibir = new JLabel(""); somar = new JButton("Somar");

rotulo1.setBounds(50,20,100,20); rotulo2.setBounds(50,60,100,20); texto1.setBounds(120,20,200,20); texto2.setBounds(120,60,200,20); exibir.setBounds(50,120,200,20); somar.setBounds(150,100,80,20);

somar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ int numero1,numero2,soma;

soma=0;

numero1 = Integer.parseInt(texto1.getText()); numero2 = Integer.parseInt(texto2.getText()); soma = numero1 + numero2; exibir.setVisible(true); exibir.setText("A soma é: "+soma);

);

}

}

exibir.setVisible(false);

tela.add(rotulo1); tela.add(rotulo2); tela.add(texto1); tela.add(texto2); tela.add(exibir); tela.add(somar);

setSize(400, 250);

tela.add(texto2); tela.add(exibir); tela.add(somar); setSize(400, 250); AleksandraR.Cardozo Página 4 4
tela.add(texto2); tela.add(exibir); tela.add(somar); setSize(400, 250); AleksandraR.Cardozo Página 4 4

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados setVisible(true); } public static void main(String args[]){ Soma app = new Soma();

setVisible(true);

}

public static void main(String args[]){ Soma app = new Soma(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } A habilitação do botão já foi explicado no aplicativo

A habilitação do botão já foi explicado no aplicativo anterior, o que foi acrescentado nesse aplicativo, foram os comandos que trabalham com conversão de números.

Foram declaradas três variáveis do tipo inteira: int numero1, numero2, soma; Foi atribuído zero a variável soma, para a variável ser iniciada vazia: soma=0; Como texto1, texto2 são String, melhor dizer texto para armazená-las nas variáveis numero1 e numero2, será necessário converte a String em números.

Nesse caso estamos convertendo o texto1 em inteiro para isso usamos o Integer.parseInt(), e armazenamos na variável numero1 que é inteira. Isso ocorrerá para a texto2 e a variável numero2.

numero1 = Integer.parseInt(texto1.getText()); numero2 = Integer.parseInt(texto2.getText());

Depois de convertido os valores agora é só fazer a soma e armazenar na variável correspondente a soma, veja: soma = numero1 + numero2;

Chamamos o comando para habilitar o JLabel exibir e jogamos o valor de soma dentro do texto do Jlabel exibir para se apresentado no aplicativo.

exibir.setVisible(true); exibir.setText("A soma é: "+soma);

Para variáveis do tipo Float, usaremos: Float.parseFloat(); Para variáveis do Double, usaremos Doublé.parseDouble();

usaremos: Float.parseFloat(); Para variáveis do Double, usaremos Doublé.parseDouble(); AleksandraR.Cardozo Página 4 5
usaremos: Float.parseFloat(); Para variáveis do Double, usaremos Doublé.parseDouble(); AleksandraR.Cardozo Página 4 5

AleksandraR.Cardozo

Página45

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 10.4 – Clicando no botão limpar e as caixas de texto serão limpas Depois

10.4 – Clicando no botão limpar e as caixas de texto serão limpas

Depois de usadas nada como limpar suas caixas de texto, esta ai o exemplo que irá ajudá-lo(a).

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Limpar extends JFrame{ JLabel rotulo1, rotulo2; JTextField texto1,texto2; JButton limpar; public Limpar(){ super("Exemplo Limpar"); Container tela = getContentPane(); setLayout(null); rotulo1 = new JLabel("1º Número: "); rotulo2 = new JLabel("2º Número: "); texto1 = new JTextField(5); texto2 = new JTextField(5); limpar = new JButton("Limpar");

rotulo1.setBounds(50,20,100,20);

rotulo2.setBounds(50,60,100,20);

texto1.setBounds(120,20,200,20);

texto2.setBounds(120,60,200,20);

limpar.setBounds(150,100,80,20);

limpar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

texto1.setText(null);

texto2.setText(null);

texto1.requestFocus();

);

}

}

tela.add(rotulo1);

tela.add(rotulo2);

tela.add(texto1);

tela.add(texto2);

tela.add(limpar); setSize(400, 250); setVisible(true);

}

public static void main(String args[]){ Limpar app = new Limpar(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

Nada de diferente no aplicativo somente as linhas que vão limpar as caixas de texto e passar o foco para a primeira caixa vejam:

texto1.setText(null); ou texto1.setText(“”); texto2.setText(null); ou texto2.setText(“”);

texto1.requestFocus();

É atribuído null dentro das caixas, pois nulo significa vazio e requestFocus() passa o foco para a caixa selecionada pelo usuário.

nulo significa vazio e requestFocus() passa o foco para a caixa selecionada pelo usuário. AleksandraR.Cardozo Página
nulo significa vazio e requestFocus() passa o foco para a caixa selecionada pelo usuário. AleksandraR.Cardozo Página

AleksandraR.Cardozo

Página46

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 10.5 – Ocultar e Exibir componentes Esse aplicativo é só para teste não tem

10.5 – Ocultar e Exibir componentes

Esse aplicativo é só para teste não tem muito que ser explicado, pois a única coisa diferente é que quando você clica em ocultar os JLabels some e você clica em exibir os JLabels aparecem novamente na janela. Isso ocorre por que o comando setVisible(false), oculta e o comando setVisible(true), exibe mostra na janela. Veja o exemplo:

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class OcultarExibir extends JFrame{ JLabel rotulo1, rotulo2; JButton ocultar,exbir; public OcultarExibir(){ super("Exemplo de ocultar e exibir componente"); Container tela = getContentPane(); setLayout(null); rotulo1 = new JLabel("Rótulo 1"); rotulo2 = new JLabel("Rótulo 2"); ocultar = new JButton("Ocultar "); exbir = new JButton("Exibir "); rotulo1.setBounds(50,20,100,20); rotulo2.setBounds(50,60,100,20); ocultar.setBounds(100,100,80,20); exbir.setBounds(250,100,80,20); ocultar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

rotulo1.setVisible(false);

rotulo2.setVisible(false);

);

}

}

exbir.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

rotulo1.setVisible(true);

rotulo2.setVisible(true);

);

}

}

tela.add(rotulo1); tela.add(rotulo2); tela.add(ocultar); tela.add(exbir); setSize(400, 250); setVisible(true);

}

public static void main(String args[]){ OcultarExibir app = new OcultarExibir(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

app = new OcultarExibir(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 4 7
app = new OcultarExibir(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 4 7

AleksandraR.Cardozo

Página47

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 10.6 – Desabilitar e Habilitar Exibir componentes Nada de diferente também somente o

10.6 – Desabilitar e Habilitar Exibir componentes

Nada de diferente também somente o comando setEnabled(true) que habilita e o setEnabled(false) eu desabilita. Veja o exemplo:

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class DesabilitarHabilitar extends JFrame{ JLabel rotulo1, rotulo2; JButton desabilitar,habilitar; public DesabilitarHabilitar(){ super("Exemplo de Desabilitar e Habilitar componentes"); Container tela = getContentPane(); setLayout(null); rotulo1 = new JLabel("Rótulo 1"); rotulo2 = new JLabel("Rótulo 2"); desabilitar = new JButton("Desabilitar"); habilitar = new JButton("Habilitar"); rotulo1.setBounds(50,20,100,20); rotulo2.setBounds(50,60,100,20); desabilitar.setBounds(80,100,100,20); habilitar.setBounds(250,100,100,20);

desabilitar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

rotulo1.setEnabled(false);

rotulo2.setEnabled(false);

);

}

}

habilitar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

rotulo1.setEnabled(true);

rotulo2.setEnabled(true);

}

}

); tela.add(rotulo1); tela.add(rotulo2); tela.add(desabilitar); tela.add(habilitar); setSize(400, 250); setVisible(true);

}

public static void main(String args[]){ DesabilitarHabilitar app = new DesabilitarHabilitar(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

app = new DesabilitarHabilitar(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 4 8
app = new DesabilitarHabilitar(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 4 8

AleksandraR.Cardozo

Página48

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 11 – Apresentando a classe JList A classe JList permite a criação do componente

11 – Apresentando a classe JList

A classe JList permite a criação do componente conhecido como caixa de

listagem ou ListBox (nome popular entre programadores delphi e VB). Uma caixa de listagem é um controle visual que exibe uma série de itens dos quais o

usuário pode selecionar um ou mais itens.

A maneira mais usual de criar um caixa de listagem em Java é usar um vetor

de Strings para definirmos os itens que serão exibidos na lista. O aplicativo seguinte apresenta uma janela que contém uma caixa de listagem e um botão.

O usuário pode selecionar uma entre oito cidades. Ao clicar no botão exibir, o

valor selecionado será exibido em um JLabel.

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ExemploJList extends JFrame{ JList lista; String cidades[] = {"Rio de Janeiro","São Paulo","Minas Gerais","Espírito Santo", "Bahia","Pernambuco","Rio Grande do Sul","Acre"}; JButton exibir; JLabel rotulo; public ExemploJList(){ super("Exemplo de List"); Container tela = getContentPane(); setLayout(null); exibir = new JButton("Exibir"); rotulo = new JLabel(""); lista = new JList(cidades);

lista.setVisibleRowCount(5);

JScrollPane painelRolagem = new JScrollPane(lista); lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

painelRolagem.setBounds(40,50,150,100);

exibir.setBounds(270,50,100,30);

rotulo.setBounds(50,150,200,30);

}

exibir.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ rotulo.setText("o estado é: "+lista.getSelectedValue().toString()); ); tela.add(painelRolagem); tela.add(exibir); tela.add(rotulo); setSize(400, 250); setVisible(true);

}

}

public static void main(String args[]){ ExemploJList app = new ExemploJList(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

Experimente selecionar um dos itens da lista e clicar no botão Exibir. Observe que o texto do item selecionado é exibido em uma caixa de mensagem. Vamos analisar o código e ver como isso foi possível.

exibido em uma caixa de mensagem. Vamos analisar o código e ver como isso foi possível.
exibido em uma caixa de mensagem. Vamos analisar o código e ver como isso foi possível.

AleksandraR.Cardozo

Página49

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados O primeiro passo é declarar uma instância da classe JList chamada lista: JList lista;

O primeiro passo é declarar uma instância da classe JList chamada lista:

JList lista;

Em seguida declaramos e inicializamos um vetor de objetos String que contém os itens que estarão disponíveis na list:

String cidades[] = {"Rio de Janeiro","São Paulo","Minas Gerais","Esprito Santo", "Bahia","Pernambuco","Rio Grande do Sul","Acre"};

Os itens do vetor cidades são atribuídos à caixa de listagem por meio da seguinte instrução:

lista = new JList(cidades);

É importante observar que o vinculo entre a caixa de listagem e o vetor cidades

não termina após essa instrução. Mais tarde, se alguma alteração for feita nos elementos do vetor, você poderá atualizar a lista com uma chamada ao método

repaint da classe JComponent.

lista.rapaint();

Após a atribuição dos itens do vetor cidades à lista, temos que definir a quantidade de elementos que serão visíveis sem a necessidade de acionar as barras de rolagem isso é feito na linha:

lista.setVisibleRowCount(5);

Como queremos que o usuário seja capaz de selecionar apenas um item por vez efetuaremos uma chamada ao método setSelectionMode e usaremos uma das constantes da classe ListSelectionModel para definir a lista como sendo de seleção única:

lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

Uma lista não fornece barras de rolagem por padrão. Dessa forma, uma instância da classe JScrollPane é usada para essa finalidade:

JScrollPane painelRolagem = new JScrollPane(lista);

Quando clicamos no botão exibir, o método actionPerformed da classe publica. Chamado:

exibir.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ rotulo.setText(“o estado é: “+lista.getSelectedValue().toString());

}

}

);

Nós efetuamos uma chamada ao método getSelectedValue().toString()); da classe JList para obter o valor inteiro correspondente ao item selecionados. Esse valor inicia em 0 e vai até a quantidade de itens menos 1. Obtido o valor, só precisamos fornece-lo como índice para o valor o vetor cidades exibir o resultado final na caixa de listagem.

como índice para o valor o vetor cidades exibir o resultado final na caixa de listagem.
como índice para o valor o vetor cidades exibir o resultado final na caixa de listagem.

AleksandraR.Cardozo

Página50

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 11.1 – Selecionando múltiplos itens em uma caixa de listagem No tópico anterior

11.1 – Selecionando múltiplos itens em uma caixa de listagem

No tópico anterior escrevemos um aplicativo que permita selecionar um item em uma caixa de listagem e exibir seu valor e, um JLabel. No exemplo apenas um dos itens podia ser selecionado. É possível, porém, selecionar mais de um item em uma caixa de listagem. Tudo que temos a fazer é alterar o valor da constante fornecida para o método setSelectionMode. Veja os valores possíveis:

Valor da Constante

Resultado

SINGLE_SELECTION

Apenas um item pode ser selecionado de cada vez.

SINGLE_INTERVAL_SELECTION

Vários itens em um intervalo contíguo podem ser selecionados.

MULTIPLE_INTERVAL_SELECTION

Vários podem ser selecionados sem a restrição de intervalo.

O exemplo seguinte é uma pequena modificação do exemplo anterior que mostra como vários itens podem ser selecionados e como você pode atribuí-los a um vetor de objetos de modo a manipulá-los mais tarde:

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ExemploJList2 extends JFrame{ JList lista;

String cidades[] = {"Rio de Janeiro","São Paulo","Minas Gerais","Espírito Santo", "Bahia","Pernambuco","Rio Grande do Sul","Acre"}; JButton exibir; public ExemploJList2(){ super("Exemplo de List"); Container tela = getContentPane(); setLayout(null); exibir = new JButton("Exibir"); lista = new JList(cidades);

lista.setVisibleRowCount(5);

JScrollPane painelRolagem = new JScrollPane(lista); lista.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

painelRolagem.setBounds(40,50,150,100);

exibir.setBounds(270,50,100,30);

exibir.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ Object selecionados[] = lista.getSelectedValues(); String resultados = "Valores selecionados:\n"; for(int i=0;i<selecionados.length;i++) resultados += selecionados[i].toString()+"\n"; JOptionPane.showMessageDialog(null,resultados);

} tela.add(painelRolagem); tela.add(exibir); setSize(400, 250); setVisible(true);

}

);

}

public static void main(String args[]){ ExemploJList2 app = new ExemploJList2(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

app = new ExemploJList2(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 5 1
app = new ExemploJList2(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } AleksandraR.Cardozo Página 5 1

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados Execute o código e experimente selecionar mais de um item na caixa de listagem.

Execute o código e experimente selecionar mais de um item na caixa de listagem. Lembre-se de que mais de um item pode ser selecionados mantendo

a tecla Crtl pressionada enquanto clicamos nos outros itens. Clique no botão exibir, e você verá a caixa de mensagem exibindo os valores dos itens selecionados.

Este exemplo apresenta poucas modificações. A primeira delas é a modificação do valor fornecido para o método setSelectionMode:

lista.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

Veja que agora a lista permite que vários itens sejam selecionados. A outra modificação aconteceu no evento do botão exibir:

exibir.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ Object selecionados[] = lista.getSelectedValues(); String resultados = "Valores selecionados:\n"; for(int i=0;i<selecionados.length;i++) resultados += selecionados[i].toString()+"\n"; JOptionPane.showMessageDialog(null,resultados);

}

}

);

A

classe JList possui um método chamado getSelectedValues que retorna um

vetor de objetos da classe Object. Este valor contém todos os itens selecionados na caixa de listagem. Assim, a linha:

Object selecionados[ ] = lista.getSelectedValues();

Quando foi adicionado \n no final da frase Valores selecionados, que como visto \n pula uma linha na próxima palavra que será exibida e não ao lado.

Criar um vetor chamado selecionados e atribui a ele os itens retornados pelo método getSelectedValues. Mantenha em mente que temos um vetor objetos da classe Object. Esquecer-se deste detalhe pode ser desastroso. O laço for interage com cada um dos elementos do vetor selecionados, efetuando chamadas ao método String de cada um e concatenando o resultado obtido com o valor da variável resultados.

Cada vez que selecionados jogar um item dentro de resultado, cada item cada item vai com a opção de pular uma linha por isso os itens são exibidos um em baixo do outro.

A caixa de mensagem JOptionPane será estuda mais profundamente nos próximos capítulos da apostila. A opção showMessageDialog, que dizer uma mensagem de dialogo será exibida ao usuário.

A opção showMessageDialog, que dizer uma mensagem de dialogo será exibida ao usuário. AleksandraR.Cardozo Página 5
A opção showMessageDialog, que dizer uma mensagem de dialogo será exibida ao usuário. AleksandraR.Cardozo Página 5

AleksandraR.Cardozo

Página52

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 11.2 – Trocando a cor da letra do JList É possível trocar a cor

11.2 – Trocando a cor da letra do JList

É possível trocar a cor da letra do componente JList abaixo do comando onde

você define em qual linha e coluna vai ficar o componente você pode digitar essa linha: lista.setForeground(Color.blue);

11.3 – Trocando a cor de fundo do JList

lista.setBackground(Color.yellow);

11.4 – Trocando tipo, estilo e tamanho da fonte do Jlist

lista.setFont(new Font("Times New Roman",Font.BOLD,16));

Execute o aplicativo ExemploJList3.java que você poderá conferir onde aplicar os comandos para as alterações citadas acima.

onde aplicar os comandos para as alterações citadas acima. 12 – uso da classe JComboBox na

12 – uso da classe JComboBox na criação de caixas de combinação

Objetos da classe JComboBox são usados para a criação de controles conhecidos como caixas de combinação, combo box ou lista drop-down. A diferença entre a caixa de listagem e caixa de combinação é que esta última exibe seus itens somente quando clicamos na seta (indicativo visual de que o controle possui itens entre os quais podemos escolher) ou pressionando F4 quando o foco está no componente. Além, disso, caixas de combinação são usadas quando o espaço é insuficiente para acomodar uma caixa de listagem.

A classe JcomboBox herda de JComponent, como mostra o relacionamento

seguinte:

Component
Component
Component
Component
Component

Component

Component
Component
Component
Component
Component
Component

List

Button

Container

Label

CheckBox

Component List Button Container L a b e l CheckBox Window Frame J Component JComboBox AleksandraR.Cardozo

Window

Frame

J Component

JComboBox

Component List Button Container L a b e l CheckBox Window Frame J Component JComboBox AleksandraR.Cardozo
Component List Button Container L a b e l CheckBox Window Frame J Component JComboBox AleksandraR.Cardozo

AleksandraR.Cardozo

Página53

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados O aplicativo seguinte apresenta uma janela que contém uma caixa de combinação e um

O aplicativo seguinte apresenta uma janela que contém uma caixa de combinação e um botão. Quando selecionamos um item no JComboBox e pressionamos o botão, Exibir o valor do item selecionado é exibido em uma caixa de mensagem. Eis a listagem para o exemplo:

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ExemploJComboBox extends JFrame{ JComboBox lista; String cidades[] = {"Rio de Janeiro","São Paulo","Minas Gerais","Espírito Santo","Bahia","Pernambuco","Rio Grande do Sul","Acre"}; JButton exibir; JLabel rotulo; public ExemploJComboBox(){ super("Exemplo de JComboBox"); Container tela = getContentPane(); setLayout(null); exibir = new JButton("Exibir"); rotulo = new JLabel(""); lista = new JComboBox(cidades);

lista.setMaximumRowCount(5);

lista.setBounds(50,50,150,30);

exibir.setBounds(270,50,100,30);

rotulo.setBounds(50,150,200,30);

exibir.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ rotulo.setText("o estado é: "+lista.getSelectedItem().toString()); tela.add(lista); tela.add(exibir); tela.add(rotulo); setSize(400, 250); setVisible(true);

}

}

}

);

public static void main(String args[]){ ExemploJComboBox app = new ExemploJComboBox(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Existem muitas similaridades na maneira de manipular as

Existem muitas similaridades na maneira de manipular as classes JList e JComboBox. Durante a análise você perceberá que muitas das técnicas que

JList e JComboBox. Durante a análise você perceberá que muitas das técnicas que AleksandraR.Cardozo Página 5
JList e JComboBox. Durante a análise você perceberá que muitas das técnicas que AleksandraR.Cardozo Página 5

AleksandraR.Cardozo

Página54

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados usamos anteriormente podem ser aplicadas quando estiver lidando com caixas de

usamos anteriormente podem ser aplicadas quando estiver lidando com caixas de combinação. O primeiro passo foi declarar um objeto da classe JComboBox:

JComboBox Lista;

Em seguida temos um vetor de nomes de cidades que será usado para definimos os itens da caixa de combinação:

String cidades[] = {"Rio de Janeiro","São Paulo","Minas Gerais","Espírito Santo","Bahia","Pernambuco","Rio Grande do Sul","Acre"};

Temos um vetor de oito elementos que são atribuídos à caixa de combinação com a seguinte instrução:

lista = new JComboBox(cidades);

Um objeto da classe JComboBox já possui barras de rolagem. Tiramos proveito desse fator efetuamos uma chamada ao metido setMaximumRowCount para definir a quantidade e itens visíveis na lista sem a necessidade de acionar as barras de rolagem:

lista.setMaximumRowCount(5);

O processo usado para exibir o item selecionado é o mesmo que usamos para as caixas de listagem.

exibir.addActionListener( new ActionListener(){public void actionPerformed(ActionEvent e){ rotulo.setText("o estado é: “+lista.getSelectedItem().toString());

}});

tela.add(lista);

tela.add(exibir);

tela.add(rotulo);

setSize(400, 250); setVisible(true);

}

12.1 – Como criar uma caixa de combinação editável

Se você experimentou com o exemplo anterior deve ter percebido que a caixa de combinação é somente leitura, ou seja, estamos limitados aos itens disponíveis para a escolha.

Existe, porém, uma forma de permitir que o usuário digite o valor desejado em uma caixa de combinação. Basta efetuar uma chamada ao método setEditable fornecendo o valor true como argumento:

lista.setEditable(true);

ao método setEditable fornecendo o valor true como argumento: lista.setEditable(true); AleksandraR.Cardozo Página 5 5
ao método setEditable fornecendo o valor true como argumento: lista.setEditable(true); AleksandraR.Cardozo Página 5 5

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados import javax.swing.*; import java.awt.*; import java.awt.event.*; public class

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ExemploJComboBox2 extends JFrame{ JComboBox lista; String cidades[] = {"Rio de Janeiro","São Paulo","Minas Gerais","Espírito Santo","Bahia","Pernambuco","Rio Grande do Sul","Acre"}; JButton exibir; JLabel rotulo; public ExemploJComboBox2(){ super("Exemplo de JComboBox"); Container tela = getContentPane(); setLayout(null); exibir = new JButton("Exibir"); rotulo = new JLabel(""); lista = new JComboBox(cidades); lista.setEditable(true);

lista = new JComboBox(cidades); lista.setEditable(true); lista.setMaximumRowCount(5); lista.setBounds(50,50,150,30);

lista.setMaximumRowCount(5);

lista.setBounds(50,50,150,30);

exibir.setBounds(270,50,100,30);

rotulo.setBounds(50,150,200,30);

exibir.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ rotulo.setText("o estado é: "+lista.getSelectedItem().toString()); }}); tela.add(lista); tela.add(exibir); tela.add(rotulo); setSize(400, 250); setVisible(true);

}

public static void main(String args[]){ ExemploJComboBox2 app = new ExemploJComboBox2(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

Agora o usuário será capaz de escolher um dos itens disponíveis ou digitar sua escolha. É comum em campos editáveis o pressionamento da tecla enter após a entrada da informação no campo. Desse forma, é importante efetuar uma chamada ao método addActionListener da caixa de combinação e definir o procedimento a ser efetuado. O trecho do código seguinte mostra como exibir o valor que o usuário acaba de informar:

exibir.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ rotulo.setText("o estado é: "+lista.getSelectedItem().toString());

);

}

}

e){ rotulo.setText("o estado é: "+lista.getSelectedItem().toString()); ); } } AleksandraR.Cardozo Página 5 6
e){ rotulo.setText("o estado é: "+lista.getSelectedItem().toString()); ); } } AleksandraR.Cardozo Página 5 6

AleksandraR.Cardozo

Página56

A postiladeJava2ComBancodeDados

A postiladeJava2ComBancodeDados 13. Entendimento e uso da classe JCheckBox A classe JCheckBox é usada quando

13. Entendimento e uso da classe JCheckBox

A classe JCheckBox é usada quando precisamos de controles como caixas de seleção que podem ser marcados ou desmarcados pelo usuário e oferecem feedback visual de modo percebemos seu estado atual. O uso de caixas de seleção é freqüente em ambientes em que o usuário deve selecionar uma ou mais das opções oferecidas. O aplicativo seguinte apresenta uma janela com quatro caixas de seleção e um botão. Marque uma das opções e pressione o botão. Uma mensagem exibe o texto das caixas selecionadas. Veja a listagem:

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ExemploJCheckBox extends JFrame{ JCheckBox primeira,segunda,terceira,quarta,quinta; JLabel vazio; public ExemploJCheckBox(){ super("Exemplo de um JCheckBox"); Container tela = getContentPane(); tela.setLayout(null); JLabel rotulo = new JLabel("Quais suas linguagens favoritas? ");

rotulo.setBounds(40,30,200,20);

primeira = new JCheckBox("Java"); primeira.setMnemonic(KeyEvent.VK_J);

primeira.setBounds(40,60,60,20);

segunda = new JCheckBox("C++"); segunda.setMnemonic(KeyEvent.VK_C);

segunda.setBounds(100,60,60,20);

terceira = new JCheckBox("Delphi"); terceira.setMnemonic(KeyEvent.VK_D);

terceira.setBounds(160,60,60,20);

quarta = new JCheckBox("Visual Basic"); quarta.setMnemonic(KeyEvent.VK_V);

quarta.setBounds(230,60,100,20);

quinta = new JCheckBox("Python"); quinta.setMnemonic(KeyEvent.VK_P);

quinta.setBounds(335,60,70,20);

JButton botao = new JButton("Exibir");

botao.setBounds(200,150,100,20);

vazio = new JLabel("");

vazio.setBounds(100,200,600,20);

botao.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String escolhas = ""; if (primeira.isSelected() ==true) escolhas = escolhas + primeira.getText(); if (segunda.isSelected() ==true) escolhas = escolhas +" "+segunda.getText(); if (terceira.isSelected() ==true) escolhas = escolhas +" "+terceira.getText(); if (quarta.isSelected() ==true) escolhas = escolhas +" "+quarta.getText();

if (quarta.isSelected() ==true) escolhas = escolhas +" "+quarta.getText(); AleksandraR.Cardozo Página 5 7
if (quarta.isSelected() ==true) escolhas = escolhas +" "+quarta.getText(); AleksandraR.Cardozo Página 5 7

AleksandraR.Cardozo

Página57

A postiladeJava2ComBancodeDados