Orientação a Objetos - Gil Eduardo de Andrade

Propaganda
Orientação a Objetos
Interface Gráfica – Swing
JWindow / JFrame – KeyListenner
Gil Eduardo de Andrade
Manipulando Janelas
As classes “JFrame” e JWindow”
(import javax.swing.JFrame)
(import javax.swing.JWindow)
• O pacote “javax.swing.*;” contém classes que
permitem a criação e manipulação de
componentes gráficos;
• As classes “JFrame” e “JWindow” permitem a
criação de janelas com bordas e sem bordas
respectivamente;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
A classe ”JWindow”
(import javax.swing.JWindow)
• Para utilizarmos todas as funcionalidades
disponíveis na classe JWindow trabalhamos
com o conceito de herança;
• Ao herdar-se as características da classe,
podemos então configurar (tamanho/posição)
e apresentar a janela que pretende-se
manipular;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
Criando uma Janela – Herança “JWindow”
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
Criando uma Janela – Classe Main
Resultado da Execução
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
A classe ”JFrame”
(import javax.swing.JFrame)
• Para utilizarmos todas as funcionalidades
disponíveis na classe JFrame trabalhamos com
o conceito de herança;
• Ao herdar-se as características da classe,
podemos então configurar (tamanho/posição)
e apresentar a janela que pretende-se
manipular;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
Criando uma Janela – Herança JFrame
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
Criando uma Janela – Classe Main
Resultado da Execução
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Métodos úteis da JFrame
Método: setLocationRelativeTo()
• O método setLocationRelativeTo(), permite
posicionar, de forma prática, um JFrame no
centro da tela;
• Para isso, passa-se como parâmetro ao
método o valor null, que indica que a sua
posição não é relativa a nenhum outro
componente;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
Método: setLocationRelativeTo()
* Importante observar que o método deve ser chamado
após a definição do tamanho da janela, e de preferência,
uma linha antes do método setVisible(true);
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
Método: setLocationRelativeTo()
Resultado da
Execução
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Métodos úteis da JFrame
Método: setDefaultCloseOperation()
• O método setDefaultCloseOperation(), permite
definir o que deve ser feito quando o usuário
clicar no ícone de fechamento do JFrame;
• O método é utilizado, normalmente, para finalizar
a execução de JFrame;
• Para tal passamos como parâmetro o valor
“EXIT_ON_CLOSE” pertencente a classe JFrame;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Métodos úteis da JFrame
Método: setDefaultCloseOperation()
* Importante observar que o método normalmente é
usado dentro do construtor da classe implementada
para criar uma janela;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Obtendo a resolução de tela
Classes “Dimension” e “Tookilt”
(import java.awt.Dimension)
(import java.awt.Toolkit)
• A classe Toolkit permite obter a resolução ou
dimensão da tela, isso é possível através da
invocação conjunta dos métodos
getDefaultToolkit().getScreenSize();
• Como retorno a invocação conjunta dos dois
métodos tem-se um objeto da classe Dimension,
contendo os valores da resolução;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Obtendo a resolução de tela
Classes “Dimension” e “Tookilt”
• Com o objeto Dimension em mãos, basta
acessar os atributos width e height;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Manipulando Janelas
Classes “Dimension” e “Tookilt”
Resultado da
Execução
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos em Java
Pacote “Event”
(import java.awt.event.*)
• As interfaces gráficas em Java são, em sua
maioria, orientadas a eventos, ou seja,
quando um usuário pressiona uma tecla ou
clica em um botão um evento é gerado;
• Sendo assim, o evento gerado tem como
objetivo tratar a ação do usuário, seja ela
pressionar uma tecla ou clicar num botão;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos em Java
Classes “Event”
• Entretanto para que seja possível que o
sistema operacional ouça o evento é preciso
registrá-lo;
• Esse registro é feito de acordo com o tipo de
evento, existindo classes específicas para cada
um deles dento do pacote event.*;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Classes “KeyEvent” e “KeyListener”
(import java.awt.event.KeyEvent)
(import java.awt.event.KeyListener)
• Para registrar um evento do teclado utiliza-se o
método addKeyListener(), passando como
parâmetro o objeto da classe que pretende
capturar e tratar os eventos;
• A KeyListener é uma interface para que seja
possível implementar o código que deve ser
executado para tratar um evento do teclado;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Implementando uma “KeyListener”
• Sendo assim a classe utilizada para criar uma
janela precisa implementar (implements) a
interface keyListener;
• E os métodos abstratos keyPressed(),
keyReleased() e keyTyped() devem ser
declarados e, se necessário, implementados
dentro da mesma;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Implementando uma “KeyListener”
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Implementando uma “KeyListener”
Resultado da
Execução
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Implementando uma “KeyListener”
• No exemplo anterior o tratamento dos
eventos da keyListener foi feito pela classe que
estender da JFrame criando uma janela;
• Entretanto, por questões de organização, é
recomendável que a implementação da
keyListener seja feita por outra classe;
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Implementando uma “KeyListener”
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Eventos do teclado em Java
Implementando uma “KeyListener”
Aula 11: Interface Gráfica / Swing – Gil Eduardo de Andrade
Download