Java - Como implemento KeyListener en este programa?

 
Vista:
sin imagen de perfil

Como implemento KeyListener en este programa?

Publicado por Erick (4 intervenciones) el 13/11/2014 19:42:43
Hice un programa para una tarea que consiste en dibujar el conjunto de Mandelbrot, pero me falta hacer que al presionar una tecla se cambie la variable ZOOM, por ejemplo al presionar la tecla "+" aumenta y al presionar "-" disminuye. Me dijeron que lo podia hacer con un KeyListener pero la verdad nunca lo he usado no se como implementarlo, asi que me gustaria que me ayudaran, aqui esta el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.awt.Graphics;
   import java.awt.image.BufferedImage;
   import javax.swing.JFrame;
 
 
   public class Mandelbrot extends JFrame{
 
      private final int MAX_ITER = 570;
      private double ZOOM = 200;
      private BufferedImage erick;
      private double zx, zy, cX, cY, tmp;
 
 
      public Mandelbrot() {
         super("Conjunto de Mandelbrot, Grupo B");
         setBounds(100, 100, 800, 600);
         setResizable(false);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         erick = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
         for (int y = 0; y < getHeight(); y++) {
            for (int x = 0; x < getWidth(); x++) {
               zx = zy = 0;
               cX = (x - 400) / ZOOM;
               cY = (y - 300) / ZOOM;
               int iter = MAX_ITER;
               while (zx * zx + zy * zy < 4 && iter > 0) {
                  tmp = zx * zx - zy * zy + cX;
                  zy = 2 * zx * zy + cY;
                  zx = tmp;
                  iter--;
               }
               erick.setRGB(x, y, iter | (iter << 8));
            }
         }
      }
 
      @Override
      public void paint(Graphics g) {
         g.drawImage(erick, 0, 0, this);
      }
 
            public static void main(String[] args) {
 
         new Mandelbrot().setVisible(true);
 
 
      }
   }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder