Depois criar a GUI básico e motor de animação, introduzir os conceitos básicos de interação através da incorporação de eventos modelo de mouse.
A técnica será a de gerar um evento ou acontecimento cada vez que você interagir com o mouse. Este evento será capturado por um dos nossos módulos de software, processá-lo e gerar alguma ação.
O primeiro passo é entender como esses eventos e gerar, mais tarde, incorporar ações mais elaboradas. Por agora é suficiente para determinar o tipo de evento que ocorre ea posição na tela onde fizemos.
O programação orientada a eventos é um Paradigma de programação em que tanto a estrutura como a execução dos programas são determinados pelos eventos que ocorrem no sistema, definido pelo usuário ou que causam.
Para entender a programação orientada a eventos, que se opõem a ela o que não é: durante a programação sequencial (ou estruturada) é o programador que define qual será o fluxo do programa, na programação orientada a eventos é o usuário ou o que você está operando o programa, que dirige o fluxo do programa. Embora a programação seqüencial pode ser programa de intervenção agente externo, essas intervenções ocorrer quando o programador determinou, e não, em qualquer momento, como no caso de programação orientada a eventos.(W)
Implementar a interface ouvinte de eventos
Vamos implementar o sistema de eventos em uma única classe biblioteca de gráficos para evitar complicar o modelo inicialmente. A primeira coisa que vamos fazer é mudar a declaração da classe responsável pela manutenção do banco de dados e objetos gráficos pintura: “BlackBoard”. Indique rotulada “implementa” que esta classe é capaz de ouvir o mouse.
public class Lousa estende-se Lona implementa MouseListener{
A nova interface nos obriga a adicionar novas bibliotecas Java chamada para localizar os arquivos que implementam esta interface. O que fazemos com a palavra reservada “importar”.
importar java.awt.event.MouseListener;
Será necessário implementar os métodos definidos na interface, bem como da classe “MouseEvent” que se passa como parâmetro a estes métodos. Por agora simplesmente declarar sem adicionar qualquer funcionalidade.
public void mouseClicked(MouseEvent arg0) { // Método TODO Auto-generated stub } public void mouseEntered(MouseEvent arg0) { // Método TODO Auto-generated stub } public void mouseExited(MouseEvent arg0) { // Método TODO Auto-generated stub } public void mousePressed(MouseEvent arg0) { // Método TODO Auto-generated stub } public void mouseReleased(MouseEvent arg0) { // Método TODO Auto-generated stub }
Registro de Evento
Vamos registrar um evento do mouse ocorre sempre. No construtor da classe ou em um método start irá juntar-se a chamada “addMouseListener” para indicar que queremos adicionar o ouvinte.
O parâmetro passado é o nome da classe que escuta o rato. No nosso caso, indicam que é da mesma classe que está registrando o evento para ser alertado quando ocorre. Isto é feito com a etiqueta “este“.
público Lousa(){ este.addMouseListener(este); }
Gestão de Eventos
Definir um par de variáveis que irá armazenar as coordenadas da posição da tela onde o mouse foi pressionado
int privado lastX = 0; int privado Lasty = 0;
Implementar uma das funções acima, por exemplo, que é executado toda vez que você apertou o botão do mouse “mouseClicked”. Por agora, vamos manter apenas as coordenadas onde foi pressionado, embora pudéssemos ter complicado o programa com funcionalidades adicionais.
Estas coordenadas são dadas no objeto ou evento que foi passado para a função, objeto “MouseEvent”
public void mouseClicked(MouseEvent arg0) { lastX = arg0.getX(); Lasty = arg0.getX(); }
Modifique o método responsável por desenhar na tela gráfica para pintar algo sobre a posição onde o mouse foi pressionado. É a aplicação mais simples nos permite verificar graficamente que capturou e processou o evento do mouse.
public void paintOffScreen(Graphics g){ Enumeração enum = bd.elements(); Objeto ob; enquanto(enum.hasMoreElements()){ ob = enum.nextElement(); se(ob instanceof SimpleDrawable){ ((SimpleDrawable) se).pintar(g); } } paintMousePosition(g); }
Responsável por esta função é “paintMousePosition”, cuja implementação está a escrever graficamente as coordenadas armazenadas da posição do mouse, pela função “drawString”.
private void paintMousePosition(Graphics g) { g.drawString("("+lastX ","+Lasty ")", lastX, Lasty); }
Deve estar conectado postar um comentário.