[英]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;
}
}
您需要將偵聽器綁定到一個事件中。 當傳遞的KeyEvent
為null
時,您不能期望發生任何事情。 此外,您沒有指定按下空格鍵的任何位置。 您還會錯過注冊按鍵事件的上下文。 它是控制台還是桌面應用程序? 只要你使用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.