Interfaces Gráficas com Swing

Propaganda
LP_Aula20
Interfaces Gráficas com Swing
1. Objetivos





Demonstrar o funcionamento das principais classes do pacote swing para a
criação de Interface Gráfica do usuário
Identificar os principais objetos presentes nas janelas de uma aplicação em
Java, tais como botões, campos texto, painéis de rolagem, lista de múltipla
escolha, entre outros;
Demonstrar a utilização de diversos tipos de caixa de mensagens e menus
de barra e suspensos;
Fornecer uma serie de informações que permite desenvolver a maioria das
interfaces gráficas necessárias em uma aplicação
Desenvolver a capacidade de abstrair uma necessidade de entrada e saída
de dados de uma aplicação, transformando-a numa interface gráfica.
2. Definições
A utilização de classes disponíveis no Java para o desenvolvimento de interfaces
gráficas, conhecidas inicialmente como AWT – ABSTRACT WINDOW TOOLKIT. Com
o desenvolvimento da linguagem Java, o AWT foi substituído pelo swing
pertencente à biblioteca JFC (Java Foundation Classes), portanto o swing é uma
extensão das classes da AWT. Por esse motivo, vamos dar o enfoque às classes do
swing que possuem diversas vantagens e muitos aprimoramentos em relação às
classes da AWT – melhor aparência, melhor tratamento de eventos, recursos
estendidos, entre outros.
A diferença básica entre as classes do swing em relação às do pacote awt esta na
presença da letra J antes do inicio do nome da classe. Por exemplo, para inserir um
botão do pacote awt, é usada a classe Button, já para inserir um botão do pacote
swing, é usada a classe JButton. O mesmo vale para as classes do swing, pois
todas iniciam com J.
As aplicações gráficas são aquelas que possibilitam a criação de um GUI
(GraphicalUser Interface – Interface Gráfica do Usuário). Ao desenvolver uma
aplicação dotada de uma GUI, é necessário definir quais componentes (objetos)
serão utilizados e a disposição que eles terão na janela. O swing possui inúmeras
classes que podem ser utilizadas na construção da GUI. Neste ponto, a linguagem
começa a ficar interessante, pois as aplicações são criadas a partir de janelas
gráficas. Ao projetar uma aplicação gráfica, é necessário definir todos os
componentes que serão utilizados, seus objetivos e sua posição na janela.
Vamos utilizar os componentes mais utilizados na criação de interfaces gráficas sem
ainda se preocupar com questão de arquitetura. Um componente da GUI é um
objeto visual (criado a partir de uma classe Java) que possibilita realizar a interação
com a aplicação por meio do mouse e teclado. Os componentes mais comuns são
etiquetas, botões, caixa de texto, painéis de rolagem, menus, objetos de múltipla
escolha, entre outros. Conforme será apresentado, cada um dos componentes
possui propriedades que podem ser alteradas em tempo de desenvolvimento ou
execução (cor, tamanho, fonte etc), assim como outras linguagens de
programação. As classes do swing são extensões do pacote awt que, por sua vez,
são extensões da classe java.lang.Object, a superclasse de todas as classe do Java.
Além dos pacotes de classes da awt e swing, existem ainda outras formas de criar
interface em Java.
Linguagem de Programação
Página 1
LP_Aula20
Todas as classes elaboradas em nosso estudo necessitam de diversas classes
externas tanto do pacote swing como do awt. Na maioria dos exemplos, as classes
terão pelo menos três linhas com a diretiva import apontando para pacotes de
classes externas, conforme as declarações seguintes:

importjava.awt.*; ->Permite a utilização de diversas classes do pacote
awt, além de possuir uma serie de constantes numéricas.

importjava.awt.event;
->Usado para o processamento dos eventos que
ocorrem na janela, tais como clique do mouse.
 importjava.swing.*;
->Permite a utilização de diversas classes do
pacote swing.
Criação de Frames
Para criar frames utilizaremos à classe JFrame disponível no pacote
swing, a qual fera uma janela com barra de titulo, bordas e pode ter
outros componentes visuais (objetos) em seu interior. Vamos criar
uma aplicação MDI (multipledocument interface), em que todas as
telas do sistemas apareceram dentro de uma única janela; no cas
cada aplicação sera um painel a ser adicionado ao frame principal.
Antes de apresentar primeiro exemplo, vamos descrever algumas
funcionalidades das classes do pacote swing que será usada: JLabel,
JTextField, JPassowordField e JButton.
Classe JLabel
A classe JLabel permite definir um texto que pode ser adicionado a
um outro componente (frame, painel etc.). Podem ser definidas
várias propriedades para esse texto, tais como alinhamento, tipo de
letra, tamanho, cor etc. uma possível sintaxe para a declaração e a
criação de um objeto JLabel é:
JLabel<nome do objeto> = new JLabel(“<texto do label>” , JLabel.<alinhamento>);
Exemplo: JLabellbNome = new JLabel(“Nome”, JLabel.RIGHT);
Este exemplo cria um objeto chamado lbNome contento o texto
“Nome”, alinhado à direita. A tabela abaixo apresenta um resumo dos
principais métodos disponíveis na classe JLabel.
Método
JLabel()
JLabel(String)
JLabel(String, int)
JLabel(String, Image)
JLabel(String, Image, int)
getText()
setText()
Função
Cria um Label vazio (sem texto)
Cria um Label com texto dados
Cria um Label com texto e o alinhamento dado
Cria um Label com texto e a imagem dada
Cria um Label com texto, a imagem e o alinhamento dado
Obtém o texto do Label
Especifica o texto do Label
Classe JTextField
A classe JTextField permite criar uma caixa de texto gráfica em que o
usuário pode digitar dados. Assim como JLabel, existem diversas
propriedades cujos conteúdos podem ser modificados. Uma possível
sintaxe para a declaração e criação de um objeto JTextField é :
JTextField<nome do objeto> = new JTextFiled();
Linguagem de Programação
Página 2
LP_Aula20
Exemplo: JTextFieldtfNome = new JTextField();
Este exemplo cria um objeto chamando tfNome com conteúdo em
branco. A tabela abaixo apresenta um resumo dos principais métodos
disponíveis na classe JTextField.
Método
JTextField()
JTextField(String)
JTextField(String, int)
JTextField(int)
getText()
getSelectedText()
isEditable()
selectAll()
setEditable(boolean)
setText()
Função
Cria uma caixa de texto vazia
Cria uma caixa de texto com a string dada
Cria uma caixa de texto com a string e a quantidade de
colunas especificadas
Cria uma caixa de texto com a quantidade de colunas
especificadas
Obtém o texto do objeto
Obtém o texto selecionado no objeto
Verifica se o componente é editável ou não
Seleciona todo o texto
Especifica se o componente é editável ou não
Especifica o texto contido no componente
Classe JPasswordField
De uma forma semelhante à JTextField, a classJPasswordField
permite criar um componente visual em que o usuário digita os
caracteres, porem eles são substituídos (visualmente) por outro
caractere. O funcionamento da classe JPasswordField é praticamente
o mesmo da classe JTextField, a diferença é que o caractere digitado
é substituído por outro para ocultar a senha digitada. O caractere
default que aparece no momento da digitação é o asterisco (*),
entretanto qualquer caractere pode ser definido pelo método
setEchoChar. Uma possível sintaxe para a declaração e criação de
um objeto JPasswordField é:
JPasswordField<nome do objeto> = new JPasswordField();
Exemplo: JPasswordFieldpfSenha = new JPasswordField();
Este exemplo cria um objeto chamadopfSenha com conteúdo em
branco. A tabela abaixo apresenta um resumo dos principais métodos
disponíveis na classe JPasswordField:
Método
JPasswordField()
JPasswordField (String)
JPasswordField (int)
getPasswordField()
getEchoChar()
setEchoChar()
Função
Cria uma caixa de texto vazia
Cria uma caixa de texto com a string dada
Cria uma caixa de texto com a quantidade de colunas
especificadas
Obtém o texto do objeto, porem retornando um array do
tipo char. Cada caractere é armazenado num elemento do
array
Obtém o caractere usado na substituição dos caracteres
digitados
Define o caractere a se usado em substituição aos caracteres
digitados
Classe JButton
A classe JButton permite a criação de botões gráficos a serem
adicionados em outros componentes gráficos (como frames e
painéis). Um botão pode ser criado com apenas um texto e/ou com
Linguagem de Programação
Página 3
LP_Aula20
ícones para tomar o ambiente mais intuitivo. Vamos criar neste
primeiro momento da maneira mais simples.
Uma possível sintaxe para a declaração e criação de um objeto
JButton é:
JButton<nome do objeto> = new JButton();
Exemplo: JButtonbtCalcular = new JButton();
Método
JButton()
JButton(String)
JButton(String, Image)
getText()
setText(String)
setEnabled(boolean)
setHorizontalTextPosition()
setMnemonic(char)
setTootTipText(String)
setVerticalTextPosition()
Função
Cria um botão sem texto
Cria um botão com o texto dado
Cria um botão com o texto e a imagem dada
Obtém o texto do botão
Especifica o texto do botão
Define se o botão está habilitado (true) ou desabilitado
(false)
Define o tio de alinhamento horizontal do texto em relação a
uma imagem. Pode assumir LEFT (esquerda) ou RIGHT
(direita)
Define uma letra que será usada como acionadora do evento
clique em conjunto com a tecla ALT
Possibilita atrelar uma mensagem ao botão. Quando o
ponteiro do mouse estaciona sobre o botão, a mensagem é
apresentada
Define o tipo de alinhamento vertical do texto em relação a
uma imagem. Pode assumir TOP (topo) ou BOTTOM (abaixo)
O Frame Login
O primeiro exemplo simula uma tela de login para entrada no
sistema. O usuário fornece login e senha e, caso esteja corretos, é
apresentada a tela principal do sistema. Antes de iniciar, devemos
compreender que nem todas as funcionalidades serão explicadas em
detalhes. A cada exemplo, e no momento oportuno, são fornecidas
outras informações referentes aos componentes gráficos.
Segue o código no link abaixo:
http://www.professores.info/downloads/atividades/inf2a/AulaTela.zip
Linguagem de Programação
Página 4
Download