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