Hej, ucze sie wlasnie programowania z ksiazka "Begining Java SE 6 Game programing, third edition" i mam pewnien maly problem ktroy mnie troche dobija gdyz niemoge znaelsc odpowedzi na to jak ten problem rozwiazac a pojawil sie juz drugi raz (mialem nadzieje ze autor wytlumczy to jednak sie mylilem) mianowicie podczas pisania programu u zyciem "KeyLisetener" w pierwszej klasie pojawia sie taki oto komunikat "at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.RuntimeException: Uncompilable source code - RotatePolygon is not abstract and does not override abstract method keyPressed(java.awt.event.KeyEvent) in java.awt.event.KeyListener
at RotatePolygon.<clinit>(RotatePolygon.java:9)" szukalem tutaj na forum odpowiedzi nie znalazlem, szukalem w googlach i sytuacja podobna.
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.awt.event.KeyListener;
import java.applet.Applet;
import java.applet.*;
import java.util.*;
public class RotatePolygon extends Applet // Blad pojawia sie w tym miejscu
implements KeyListener, MouseListener{
private int[] xpoints = {0,-10,-7,7,100};
private int[] ypoints = {-10,-2,10,10,-2};
private Polygon poly;
int rotation =0;
public void init(){
poly = new Polygon (xpoints, ypoints, xpoints.length);
addKeyListener(this);
addMouseListener(this);
}
public void paint(Graphics g){
Graphics2D g2d =(Graphics2D)g;
AffineTransform identity = new AffineTransform();
int width = getSize().width;
int height = getSize().height;
g2d.setColor(Color.BLACK);
g2d.fillRect(0, 0, width, height);
g2d.translate(width/2,height/2);
g2d.scale(20, 20);
g2d.rotate(Math.toRadians(rotation));
g2d.setColor(Color.RED);
g2d.fill(poly);
g2d.setColor(Color.BLUE);
g2d.draw(poly);
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){ //poprawilem
switch(e.getKeyCode()){
case KeyEvent.VK_LEFT:
rotation--;
if (rotation<0) rotation=359;
repaint();
break;
case KeyEvent.VK_RIGHT:
rotation++;
if(rotation>360) rotation =0;
repaint();
break;
}
}
public void mouseEntered(MouseEvent m){}
public void mouseExited(MouseEvent m){}
public void mosueReleased(MouseEvent m){}
public void mosueCliced(MouseEvent m){}
public void mousePressed(MouseEvent m){ //poprawilem
switch(m.getButton()){
case MouseEvent.BUTTON1:
rotation--;
if(rotation<0)rotation=359;
repaint();
break;
case MouseEvent.BUTTON3:
rotation++;
if(rotation>360)rotation=0;
repaint();
break;
}
}
}
Nie mam pojecia juz jak roziwazac ten problem, dlatego pisze na forum...