簡體   English   中英

每次按下空格鍵時在 Java 中增加一個變量

[英]increment a variable in Java when every time the space bar is pressed

每次在 Java 中按下空格鍵時,我都試圖增加一個變量。

我寫的代碼在下面,但它似乎是錯誤的,因為它不按鍵就增加了。

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

public class TestKeyPress {
    public static void main(String[] args) {
        
        System.out.println(keyPressed(null));
        
    }
    public static int keyPressed(KeyEvent e) {
        int var = 0;
        while (var <6) {
            var ++;
            System.out.println(hi);
        }
        System.out.println("max reached");
        return var;
    }
}

您需要將偵聽器綁定到一個事件中。 當傳遞的KeyEventnull時,您不能期望發生任何事情。 此外,您沒有指定按下空格鍵的任何位置。 您還會錯過注冊按鍵事件的上下文。 它是控制台還是桌面應用程序? 只要你使用java.awt.event我懷疑是后者。 這是一個最小的示例:

使用 Swing 的 Java 桌面應用程序

public static void main(String[] argv)  {

    JTextField textField = new JTextField();
    textField.addKeyListener(new KeyAdapter() {

        int counter = 0;
 
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_SPACE) {
                if (counter < 6) {
                    counter++;
                    System.out.println("hi");
                } else {
                    System.out.println("max reached");
                }
            }
        }
    });

    JFrame jframe = new JFrame();
    jframe.add(textField);
    jframe.setSize(640, 320);
    jframe.setVisible(true);
}

控制台應用程序

在這種情況下,您不能使用java.awt.*javax.swing.*庫中的任何內容,而必須堅持使用java.io.*類。

因為當keyPressed調用 var 變量將為零時,您應該在keyPressed之外聲明。

此外,如果您想與進度條綁定,您應該實現偵聽器。

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

public class TestKeyPress {

    private static int var = 0;

    public static void main(String[] args) {
        System.out.println(keyPressed(null));
    }

    public static int keyPressed(KeyEvent e) {
        while (var < 6) {
            var ++;
            System.out.println(hi);
        }
        System.out.println("max reached");
        return var;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM