java: I’m stuck on the error The type Pong.Move1 must implement the inherited abstract method
KeyListener.keyTyped(KeyEvent) when I used keyListener. I don’t get what it means? Help?
Here’s the Thread I’m having trouble on…
private class Move1 extends Thread implements KeyListener{
public void run(){
addKeyListener(this);
while(true){
//hitRight makes you lose.
//point is how many times it ricochets.
if(ball.intersects(borderRight)){
hitRight = true;
}
if(ball.intersects(borderLeft)){
point++;
}
}
}
public void keyPressed(KeyEvent event){
while(event.getKeyCode()==40||event.getKeyCode()=='s'){
direction = DOWN;
Thread.sleep(500);
}
}
public void KeyReleased(KeyEvent event){
}
public void KeyTyped(KeyEvent event){
}
}
I’m also stuck on the Thread.sleep(500); line I have. It says Unhandled exception type InterruptedException. Any help? Thx.
Oh, I forgot something.
1:When I try to run it, the only error I get is:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: at Pong.main(Pong.java:50). That’s the public static void main(String[] args) line. My complete code is at the end so you can look at it (plz)
2:I’m using eclipse.
3:I am basically a beginner (not really)
My complete code:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.EventListenerList;
public class Pong extends JFrame{
public final int WIDTH = 1000, HEIGHT = 1000;
final int UP = 1, DOWN = 2;
boolean hitRight;
int point = 0;
int direction;
Rectangle bg = new Rectangle(0,0,WIDTH,HEIGHT);
Rectangle borderLeft = new Rectangle(0,0,WIDTH/320,HEIGHT);
Rectangle borderRight = new Rectangle(WIDTH-WIDTH/320,0,WIDTH/320,HEIGHT);
Rectangle borderTop = new Rectangle(borderLeft.x,borderLeft.y,WIDTH,HEIGHT/35);
Rectangle borderBottom = new Rectangle(0,HEIGHT-HEIGHT/320,WIDTH,HEIGHT/320);
Rectangle ball = new Rectangle(WIDTH/2,HEIGHT/2,WIDTH/64,HEIGHT/64);
Rectangle board = new Rectangle(WIDTH-WIDTH/160,0,WIDTH/128,HEIGHT/10);
public void paint(Graphics graphics){
super.paint(graphics);
graphics.setColor(Color.BLACK);
graphics.fillRect(bg.x,bg.y,bg.width,bg.height);
graphics.setColor(Color.RED);
graphics.fillRect(borderLeft.x, borderLeft.y, borderLeft.width, borderLeft.height);
graphics.fillRect(borderRight.x, borderRight.y, borderRight.width, borderRight.height);
graphics.fillRect(borderTop.x, borderTop.y, borderTop.width, borderTop.height);
graphics.fillRect(borderBottom.x, borderBottom.y, borderBottom.width, borderBottom.height);
graphics.setColor(Color.WHITE);
graphics.fillRect(ball.x,ball.y,ball.width,ball.height);
graphics.fillRect(board.x,board.y,board.width,board.height);
}
/**
* This Pong game made by me.
* This has no copied code.
* Any similarities are coincidences.
* @param args
*/
/*
* The constructor.
*/
public Pong(){
super("Pong");
setSize(WIDTH, HEIGHT);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Pong p = new Pong();
}
/*
* The move thread.
*/
private class Move1 extends Thread implements KeyListener{
public void run(){
addKeyListener(this);
while(true){
//hitRight makes you lose.
//point is how many times it ricochets.
if(ball.intersects(borderRight)){
hitRight = true;
}
if(ball.intersects(borderLeft)){
point++;
}
}
}
public void keyPressed(KeyEvent event){
while(event.getKeyCode()==40||event.getKeyCode()=='s'){
direction = DOWN;
Thread.sleep(500);
}
}
public void KeyReleased(KeyEvent event){
}
public void KeyTyped(KeyEvent event){
}
}
}
/*
* End of move thread...
*/
In order to implement KeyListener, you need to implement all of the methods that that individual interface contains.
These are:
In order to use interfaces you must implement all of their methods.
Also, Thread.sleep(500) might generate an exception. Java is basically requiring you to handle an error just in case something goes wrong. To do this, you need a try…catch, like so: