Orientação a Objetos - Gil Eduardo de Andrade

Propaganda
Orientação a Objetos
Componentes: JLabel, JTextField e JButton
Container / Layout
Gil Eduardo de Andrade
Componentes Gráficos: Container
A classe “Container”
(import java.awt.Container)
• A ideia de Container, em Java, está associada a
possibilidade de componentes agregarem outros
componentes, como por exemplo, um JFrame (janela)
agregar vários JButtons (botões);
• Existe uma classe abstrata “Container” que define
funções básicas associados a um Container, como os
métodos:
– add(): que permite adicionar um componente;
– remove(): que permite remover um componente;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Container
“Container” e a classe “LayoutManager”
• Normalmente Containers possuem mais de
um componente agregado, necessitando
especificar a disposição como eles serão
apresentados ;
• Em Java, a classe LayoutManager é
responsável pelo gerenciamento dessa
disposição;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Métodos de Layout de um Container
• Os principais métodos da classe “Container”
vinculados ao layout dos componentes são:
– setLayout(LayoutManager obj): recebe um
objeto da classe LayoutManger que determina a
política escolhida de disposição dos componentes;
– validate(): server para atualizar (validar)
alterações feitas nos componentes de um
Container; (adicionar ou remover um componente)
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Tipos de Layout de um Container
• O pacote java.awt possui vários
gerenciadores de layout pré-definidos,
contudo, nesta aula iremos trabalhar apenas
com os layouts: FlowLayout e BorderLayout;
• Também é possível trabalhar com layout livre,
onde o usuário especifica diretamente a
disposição de cada componente do Container;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
A classe “FlowLayout”
(import java.awt.FlowLayout)
• Neste gerenciador os componentes são
adicionados ao Container da esquerda para
direita, quando a borda é alcançada, os
componentes são dispostos em uma nova linha;
• A FlowLayout permite que os componentes sejam
alinhados à esquerda, centralizados e alinhados à
direita;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo 01: Gerenciador FlowLayout
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo 02: Gerenciador FlowLayout
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo 02: Gerenciador FlowLayout
Continuação do código do slide anterior
A classe JButton, utilizada no exemplo, será explicada em mais detalhes nos próximos slides.
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo 02: Gerenciador FlowLayout
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo 03: Gerenciador FlowLayout
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo 03: Gerenciador FlowLayout
Continuação do código do slide anterior
A classe JButton, utilizada no exemplo, será explicada em mais detalhes nos próximos slides.
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo 03: Gerenciador FlowLayout
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
A classe “BorderLayout” (import java.awt.BorderLayout)
• Neste gerenciador os componentes são
organizados por regiões (NORTH, SOUTH, EAST, WEST, CENTER)
dento do Container;
• O gerenciador BorderLayout é utilizado
(indicado) para janelas que possuem até cinco
componentes;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo: Gerenciador BorderLayout
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo: Gerenciador BorderLayout
Continuação do código do slide anterior
A classe JButton, utilizada no exemplo, será explicada em mais detalhes nos próximos slides.
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Layout
Exemplo: Gerenciador BorderLayout
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
A classe “JLabel”
(import java.swing.JLabel)
• A classe “JLabel” permite a inserção de rótulos
e imagens em formulários Java (janelas);
• Ao instanciar um objeto da classe JLabel,
quando pretende-se utilizá-lo como rótulo, é
passado ao seu construtor o texto que o
componente deve apresentar;
– JLabel rotulo = new JLabel(“Nome:”);
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
A classe “JLabel”
(import java.swing.JLabel)
• Após instanciar um objeto da classe JLabel,
considerando um JFrame com layout “null“,
são utilizados os métodos;
– setLocation(pos_x, pos_y): que permite indicar a
posição onde o JLabel deve aparecer na janela;
– setSize(largura, altura): que permite indicar a
largura e altura do JLabel na janela;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
Exemplo: Criando um JLabel
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
Exemplo: Criando um JLabel
Continuação do código do slide anterior
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
Exemplo: Criando um JLabel
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
A classe “JLabel”
(import java.swing.JLabel)
• Ao instanciar um objeto da classe JLabel,
quando pretende-se utilizá-lo como imagem, é
passado ao seu construtor um objeto da
classe ImageIcon que permite carregar uma
imagem de um caminho (path) especificado:
– JLabel img = new JLabel(new ImageIcon(“path”));
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
Exemplo: Criando um JLabel como imagem
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
Exemplo: Criando um JLabel com imagem
Continuação do código do slide anterior
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JLabel
Exemplo: Criando um JLabel como imagem
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JTextField
A classe “JTextField”
(import java.swing.JTextField)
• A classe “JTextField” permite a inserção de
campos de texto (para digitação) em formulários
Java (janelas);
• Ao instanciar um objeto da classe JTextField,
não é passado, normalmente, nenhum
parâmetro ao seu construtor;
– JTextField jt_login = new JTextField();
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JTextField
Exemplo: Criando um JTextField
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JTextField
Exemplo: Criando um JTextField
Continuação do código do slide anterior
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JTextField
Exemplo: Criando um JTextField
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JPasswordField
A classe “JPasswordField”
(import java.swing.JPasswordField)
• A classe “JPasswordField” permite a inserção
de campos de senha (para digitação) em
formulários Java (janelas);
• Ao instanciar um objeto da classe
JPasswordField, não é passado, normalmente,
nenhum parâmetro ao seu construtor;
– JPasswordField jp_senha = new JPasswordField()
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JPasswordField
Exemplo: Criando um JPasswordField
O código abaixo apresenta apenas as alterações que acontecem com relação ao anterior
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JPasswordField
Exemplo: Criando um JPasswordField
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Métodos
As classes “JTextField” e “JPasswordField”
• As classes “JTextField” e “JPasswordField”
possuem alguns métodos importantes e muito
utilizados no desenvolvimento de sistemas:
– String getText(): retorna uma String e permite
obter o texto digitado pelo usuário no campo;
– setEnabled(bool): permite habilitar (bool=true) e
desabilitar (bool=false) o campo de texto;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: Métodos
As classes “JTextField” e “JPasswordField”
Todos os métodos citados serão apresentados através dos exemplos dos próximos slides
– setVisible(bool): permite mostrar (bool=true) e
esconder (bool=false) o campo de texto;
– setLocked(bool): permite travar (bool=true) e
destravar (bool=false) o campo de texto para
digitação;
– setText(str): permite colocar o texto “str” no
campo de texto;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JButton
A classe “JButton”
(import java.swing.JButton)
• A classe “JButton” permite a inserção de
botões em formulários Java (janelas);
• Ao instanciar um objeto da classe JButton, é
passado, normalmente, uma String (texto) que
se deseja apresentar dentro do componente
– JButton jb_logar = new JButton(“Autenticar”)
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JButton
Exemplo: Criando um JButton
O código abaixo apresenta apenas as alterações que acontecem com relação ao anterior
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Componentes Gráficos: JButton
Exemplo: Criando um JButton
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Eventos com “JButton”
• Como já visto na aula anterior, as interfaces
gráficas em Java são, em sua maioria,
orientadas a eventos;
• Assim, para capturarmos as ações referentes
aos botões, como exemplo o “clicar” do
mouse, torna-se necessário registrar esse
evento;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Eventos com “JButton”
• Para registro do evento, assim como visto na
aula anterior (“KeyListener”), é necessária a
implementação de uma interface, nesse caso
a “ActionListener“;
• O método abstrato, actionPerformed() deve
ser declarado e implementado;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Exemplo: Evento JButton
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Exemplo: Evento JButton
Continuação do código do slide anterior
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Exemplo: Evento JButton
Resultado da Execução
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Exemplo: Evento JButton
Clicando no botão A
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Exemplo: Evento JButton
Clicando no botão B
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Eventos ActionListener: JButton
Eventos com “JButton”
• Um exemplo completo, contendo todos os
conceitos aqui apresentados, bem como uma
classe de controle para os eventos está
disponível na sessão de dica desta aula;
Aula 12: Componentes: JLabel, JTextField e JButton – Gil Eduardo de Andrade
Download