-2
actionPerformedは機能していませんが、KeyListenerが機能しています。ボタンを押すと出力が表示されます。私はvoid actionPerformedが動作しない理由を知りません。それは私のために一度働いた。 ##########################あなたのコンポーネント(例えばthis
)を設定するのを忘れ############################actionPerformedが機能していません
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class Window implements ActionListener, KeyListener{
public static Window window;
public static DrawWindow drawWindow;
public Point player;
public Point wall;
public boolean isMovingUp = false, isMovingDown = false, isMovingLeft = false, isMovingRight = false;
public static void main(String[] args) {
window = new Window();
}
public Window() {
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setTitle("Test");
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(drawWindow = new DrawWindow());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.addKeyListener(this);
game();
}
public void game() {
player = new Point(0,0);
System.out.println("player is created"); //working
}
@Override
public void actionPerformed(ActionEvent arg0) {
drawWindow.repaint();
if(isMovingUp == true) {
player.y += 1;
System.out.println("Moving"); //Not working
}
}
@Override
public void keyPressed(KeyEvent g) {
int key = g.getKeyCode();
if(key == KeyEvent.VK_UP) {
isMovingUp = true;
System.out.println("arrow up is pressed, isMovingUp = true"); //Working
}
}
@Override
public void keyReleased(KeyEvent g) {
}
@Override
public void keyTyped(KeyEvent arg0) {
}
}
あなたはactionlistnerをどこに追加しましたか? –