2017-09-10 11 views
0

私のプログラムでは解決できない問題があります。私は何時間も努力していて、googleなどに...しようとしています。私は多くのプログラムを見てきましたが、私の解決策はなぜ分かりません。私の目標は(今のところ)簡単です。マウスクリックやキー入力の場合には、cmd-lineに書きたいと思います。最初のものは動作しますが、2番目のものは動作しません。誰も私の理由を伝えることができますか?java eclipse windowbuilder keyPressedイベントが起動しない

import java.awt.EventQueue; 

import javax.swing.JFrame; 
import java.awt.event.KeyAdapter; 
import java.awt.event.KeyEvent; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 

public class test { 

    private JFrame frame; 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        test window = new test(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    public test() { 
     initialize(); 
    } 

    private void initialize() { 
     frame = new JFrame(); 
     frame.getContentPane().addMouseListener(new MouseAdapter() { 
      @Override 
      public void mouseClicked(MouseEvent arg0) { 
       System.out.println("Mouse has clicked!"); 
      } 
     }); 
     frame.getContentPane().addKeyListener(new KeyAdapter() { 
      @Override 
      public void keyPressed(KeyEvent arg0) { 
       System.out.println("A key has pressed."); 
      } 
     }); 
     frame.setBounds(100, 100, 450, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

} 
+3

1)Swingでは、通常、[キーバインディング](https://docs.oracle.com/)を使用します。 com/javase/tutorial/uiswing/misc/keybinding.html)を参照してください。 2)*「私は何時間も試していて、Googleなどに挑戦しています...私は多くのプログラムを見てきましたが、私の解決策がなぜなのか分かりません。」どうしてあなたが試した「多くのプログラム」で、問題のコンポーネントがフォーカスがあり、キー・リスナーが機能するために入力フォーカスが必要であることがわかりませんでした。 (キーバインディングが解決するのに役立つ問題の1つです) –

+0

'frame.add ... Listener(...)'の代わりに 'frame.getContentPane()。add ... Listener (...) '? – howlger

答えて

-1

最後に、解決策を見つけるのに十分な時間がありましたが、今はそれを発見しました。理由は分かりませんが、JFrameにkeyListenerを追加することはできませんでした。私はJButtonやJTextFieldなどを追加することしかできませんでした...これは私のためにちょっと変です:c

+0

*「理由はわかりませんが、JFrameにkeyListenerを追加することはできませんでした.JButtonやJTextFieldなどを追加することしかできませんでした。これは私にとっては奇妙です。あなたが2日前から私のコメントを読んで理解していれば、そうではありません。 –

関連する問題