2016-07-11 11 views
-1

私はKeyListenerを作成しましたが、W(指定されたキー)を押すたびに、私が言ったように何も印刷されません。私は、スタック交換や他の多くのフォーラムを見てみると結論には至りませんでした。My KeyListenerが機能していません - なぜですか?

コード:

package com.software.manders; 

import java.awt.FlowLayout; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class game implements KeyListener { 
    //0 = English, 1 = Korean. 
    public static int languageStatus = 0; 
    public static int gameStatus = 0; 
    static JFrame frame = new JFrame(); 

    public static void frameMaker() { 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
     frame.setResizable(false); 
     frame.setTitle("경기"); 
     frame.setSize(600, 600); 

     new game(); 
    } 

    public game() { 
     if (gameStatus == 0) { 
      JPanel p = new JPanel(); 
      JLabel lab1 = new JLabel(); 
      p.setLayout(new FlowLayout()); 
      p.add(lab1 = new JLabel("Please select a language : ")); 

      JLabel lab2 = new JLabel(); 
      p.add(lab2 = new JLabel("Press A for English")); 

      JLabel lab3 = new JLabel(); 
      p.add(lab3 = new JLabel("Press B for Korean")); 

      frame.add(p); 
     } 
    } 

    @Override 
    public void keyPressed(KeyEvent e) { 
     int id = e.getKeyCode(); 

     if (id == KeyEvent.VK_W) { 
      System.out.println("W is pressed"); 
     } 
    } 

    @Override 
    public void keyReleased(KeyEvent e) { 
     int id = e.getKeyCode(); 

     if (id == KeyEvent.VK_W) { 
      System.out.println("W is released"); 
     } 
    } 

    @Override 
    public void keyTyped(KeyEvent e) { 

    } 

    public static void main(String[] args) { 
     frameMaker(); 
    } 
} 

答えて

0

あなたはおそらく、あなたのゲームのクラスであなたのJFrameにのKeyListenerを追加する必要があります。私が想像するような何か。 frame.addKeyListener(this);

は、あまりにも、これを必要とするかもしれない: frame.setFocusable(true);

+0

は今までそんなにありがとう! – Manders

+0

np。ゲームを楽しんでください。 – TheRealFawby

関連する問題