0

ダブルタップにキーリスナーをどのように適用しますか?つまり、1回押すとオンになり、次にもう一度押すとオフになります。これはLWJGLキーボードを介して実行できますが、AWTを使用したKeyEventを介して実行することはできません。AWTでこれをどのように行うことができますか?

私の試み:

public static void fullscreenKey(KeyEvent e2, JFrame frame)
{
    int key = e2.getKeyCode();
    if(key == KeyEvent.VK_F1)
    {
        fullscreen(false, frame);
        f1 = false;
    }
    if(key == KeyEvent.VK_F1 && !f1)
    {
        fullscreen(true, frame);
        f1 = true;
    }
}

他のクラスでもこのメソッドを呼び出す必要があります。

4

1 に答える 1

2

fullscreen2回電話しているようです。

public static void fullscreenKey(KeyEvent e2, JFrame frame)
{
    int key = e2.getKeyCode();
    if(key == KeyEvent.VK_F1)
    {
        // This always executes if VK_F1 is pressed,
        // setting f1 to false
        fullscreen(false, frame);
        f1 = false;
    }
    if(key == KeyEvent.VK_F1 && !f1)
    {
        // f1 is now false, so this will execute too!
        fullscreen(true, frame);
        f1 = true;
    }
}

あなたは多分試してみるべきです:

public static void fullscreenKey(KeyEvent e2, JFrame frame)
{
    int key = e2.getKeyCode();
    if(key == KeyEvent.VK_F1)
    {
        fullscreen(!f1, frame);            
        f1 = !f1;
    }     
}
于 2012-09-03T14:48:39.550 に答える