Você está na página 1de 15

Classes do Pacote Swing

Rafael Marcelino de Jesus


Objetivos
 Demonstrar o funcionamento das principais classes do pacote
swing para a criação da Interface Gráfica do Usuário;
 Identificar os principais objetos presentes nas janelas de uma
aplicação em Java, tais como botões, campos de texto, barras de
rolagem, listas de múltipla escolha, entre outros;
 Demonstrar a utilização de diversos tipos de caixa de
mensagens e menus de barra e suspensos;
 Definir os principais métodos usados no controle de layout das
janelas de uma aplicação por meio dos gerenciadores de layout;
 Fornecer uma série 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.
Introdução
 Inicialmente as classes eram conhecidas como AWT (Abstract Window
Toolkit);
 AWT foi substituida pelo swing pertencente à biblioteca JFC (Java
Foundation Classes), portanto swing é uma extensão das classes AWT;
 A diferença entre as classes swing em relação ao pacote AWT está na
presença da letra J antes do início do nome da classe;
 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 uma
GUI (Graphical User Interface – Interface Gráfica do Usuário);
 Quando desenvolvemos 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.
 As classes do swing são extensões do pacote AWT que, por
sua vez são extensões da classe java.lang.Object que é a
superclasse de todas as classes do Java;
 Utilizaremos até três linhas com diretiva import apontando
para pacotes de classes externas:
◦ import java.awt.*;  permite a utilização de diversas
classes do pacote AWT, além de possuir uma série de
constantes numéricas;
◦ import java.awt.event;  usado para o processamento dos
eventos que ocorrem na janela, tais como: clique do
mouse, ENTER do campo texto, etc;
◦ Import javax.swing.*;  permite a utilização de diversas
classes do pacote swing;
Criação de Frames
 É uma classe do pacote AWT que pode ser
usada para a criação de janelas;
 É gerado uma janela com barra de título,

borda e pode ter outros componentes


(objetos) em seu interior;
 Exemplo 9.1;
Comentando o Exemplo 0901
 Linha 4: class Exemplo0901 extends Jframe  a palavra extends (lembre-se do conceito
de herança) informa que a classe Exemplo0901 vai utilizar todos os recursos da classe
JFrame. Resumindo, a classe Exemplo0901 herda todas as caracteristicas da classe
Jframe e tem outras características próprias, definidas pelo seu método construtor, no
caso o método Exemplo0901 (mesmo nome da classe);
 Linha 6: Exemplo0901()  é o construtor da classe que mantém
uma série de informações a respeito da janela a ser criada, tais
como: o título da janela, suas dimensões, sua localização na tela,
a cor de fundo, entre outras. Em todas as aplicações com janelas,
o método construtor pode ser usado para definir as
características que a janela terá ao ser exibida;
 Linha 17: JFrame janela = new Exemplo0901()  é declarado e

criado um objeto com o nome janela, contendo todas as


características da classe;
 Linha 18: janela.setVisible(true)  a janela, isto é, o Frame criado,

é apresentado na tela pelo método setVisible(true);


Comentando o Exemplo 0901
 Linhas 20 a 27: São as instruções responsáveis pelo
fechamento da janela. Se esses comandos não fossem
colocados, a janela do prompt não poderia ser fechada pelo
simples pressionar do botão. Se esse trecho de código não
fosse inserido, será necessário retornar ao prompt
pressionando as teclas Alt+Tab (Windows) e então as teclas
Ctrl+C para interromper o processo de execução do
programa. Além disso, mesmo que a janela da aplicação Java
seja encerrada, a aplicação continua sendo executada “em
background”, consumindo memória e recursos do sistema;
 A partir da versão 1.4 foram adicionados novos recursos, um
deles o encerramento da janela em uma única linha:

janela.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
Métodos utilizados na classe JFrame

Método Função
JFrame() Cria uma janela vazia
JFrame(String t) Cria uma janela vazia com um título
definido pela String t
getTitle() Obtém o título da janela
isResizable() Verifica se a janela é ou não
dimensionável
setResizable(boolean) Especifica se a janela é ou não
dimensionável
setTitle(String) Especifica o título da janela
Inclusão de Textos e Imagens na Janela
 É necessário utilizar a classe JLabel;
 É possível controlar várias propriedades do texto a ser utilizado, tais como:
alinhamento, tipo de letra, tamanho, cor, etc.
 A declaração de um objeto JLabel no programa é:
JLabel <nome do label> = new Jlabel (“<texto do label>”,Jlabel.<alinhamento>)

 ImageIcon <nome do ícone> = new ImageIcon(“Caminho e nome da imagem a


ser inserida”)
 Ao inserir o caminho do arquivo, deve ser utilizada a barra normal (/). A barra
invertida (\) é considerada caractere reservado para a quebra de linha. Depois
de criado o objeto que armazena a imagem, ele deve ser inserido na janela por
meio do JLabel, da mesma forma que um texto é inserido. O JLabel pode ser
usado para inserir um texto, uma imagem, ou ainda os dois ao mesmo tempo,
separados por vírgula;
 Exemplo 9.2;
Comentando o Exemplo0902
 Os aspectos mais importantes do exemplo 9.2 são:
◦ Linha 6: contém a declaração dos objetos da classe JLabel,
utilizados para armazenar e manipular o texto. Eles são
alinhados durante o procedimento da inicialização por meio
de constantes inteiras predefinidas pela linguagem
(JLabel.LEFT que equivale a zero, JLabel.CENTER que
equivale a um e JLabel.RIGHT que equivale a dois). Quando
o alinhamento não for especificado, o default é esquerda;
◦ Linha 7: Contém a declaração de um ícone que será usado
em conjunto com um Label. O objeto ícone é declarado e
criado com o endereço em que a imagem se localiza a
partir do disco C da máquina;
◦ Linha 13: Define a cor de fundo da janela utilizando
setBackground(new Color(220,220,220)). Os números que
aparecem dentro dos parênteses se referem ao padrão RGB
(Red-Green-Blue) e definem as tonalidades das cores
vermelha, verde e azul. Os números para a tonalidade
podem variar de 0 (mínimo) a 255 (máximo) e sua mistura
forma uma cor específica.
◦ Linha 15: Define a cor da fonte do objeto label1, cuja
sintaxe é label1.setForeground(Color.red). Da esquerda
para a direita essa declaração pode ser interpretada assim:
para o objeto label1 utilize a cor de fonte (setForeground)
vermelha (Color.red).
 Linha 16: contém a inicialização do Label label2 com o objeto
ícone. Observe que da mesma forma que ocorre com o texto,
um objeto do tipo Label pode ser inicializado com uma
imagem. Desta forma o objeto label2 terá uma imagem
atrelada a ele, e não a um texto.
 Linha 19: contém a inicialização do objeto label4 como um
texto e uma imagem. Esta é outra variação de um objeto do
tipo Label: ele pode ser inicializado com um texto, uma
imagem ou ambos.
 Linha 20: realiza a formatação do texto do objeto label4,
definindo que será utilizada a fonte Serif, em negrito
(Font.BOLD) e com tamanho 20;
 Linha 22: getContentPane().setLayout(new GridLayout(4,1)) 
todos os componentes visualizados nas janelas de aplicações
gráficas, tais como labels, botões, caixas de texto, etc.,
devem ser inseridos em locais predefinidos da janela,
conhecidos por células. Para dividir uma janela em células, é
preciso utilizar um gerenciador de layout, ou seja, um
método que controla a maneira como os componentes serão
dispostos na janela. Esta é a função de setLayout(), ou seja, é
utilizado para definir como o frame será dividido. Neste
exemplo, setLayout() define que o frame é composto por uma
grade de quatro linhas e uma coluna (4,1) em que os
componentes serão inseridos.
 A representação da divisão do frame pode ser interpretada da
maneira seguinte:

Célula1
Célula 2
Célula 3
Célula 4
 Neste caso a janela foi dividida em quatros células, em que os
componentes podem ser inseridos. Caso não fosse definido o
tipo de layout a ser usado na janela, seria considerado que o
frame contém uma só célula. Existem diversos tipos de
gerenciadores de layout em Java, os quais serão demonstrados à
medida que forem usados nos exemplos.
 Linha 23 a 26: contêm o método add() utilizado para
adicionar os diversos objetos ao frame. Os objetos são
inseridos no frame à medida que aparecem na classe. A
ordem com que os objetos são inseridos no frame à medida
que aparecem na classe. A ordem com que os objetos são
inseridos é importante para sua correta disposição na janela.
Ao usar add(), os objetos são inseridos linha a linha (sempre
de cima para baixo).
 Linha 31: contém o método setUndecorated que retira a
decoração (o estilo) da janela. Quando este método é definido
como true, somente o “miolo”

Você também pode gostar