java: keyListener を使用したときに、型 Pong.Move1 が継承された抽象メソッド KeyListener.keyTyped(KeyEvent) を実装する必要があります。意味がわからない?ヘルプ?
これが私が問題を抱えているスレッドです...
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){
}
}
私も自分のThread.sleep(500);
ラインで立ち往生しています。Unhandled例外タイプ InterruptedExceptionと表示されます。何か助けはありますか?どうも。
あ、何か忘れてました。
1:実行しようとすると、次のエラーのみ
Exception in thread "main" java.lang.Error: Unresolved compilation problem: at Pong.main(Pong.java:50)
が表示されます。それがpublic static void main(String[] args)
ラインです。私の完全なコードは最後にあるので、それを見ることができます (plz)
2: 私は eclipse を使用しています。
3:私は基本的に初心者です(そうではありません)
私の完全なコード:
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...
*/