我用 JAVA 语言编写了一个程序,它使用 Scanner 类接受来自控制台的输入....
现在我想将此功能添加到我的代码中,以便在用户按下 Esc 按钮时存在循环(while)。
到目前为止,我认为键盘类可以帮助我,但它就像扫描仪一样......我尝试使用事件,但不知道如何正确使用它们......
源代码:
package switchCase_v1;
import cs1.Keyboard;
import java.util.EventObject;
import java.awt.AWTEvent;
import java.awt.event.KeyEvent;
import java.awt.event.ComponentEvent;
import java.awt.event.InputEvent;
import java.util.*;
public class SwithCase {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("enter the name or number of month: ");
int monthNumber = input.nextInt();
while (true) {
KeyEvent button;
if (button.getKeyCode() == 27)
break;
else if (monthNumber == '\n') {
System.out.println("enter a number");
monthNumber = input.nextInt();
} else {
switch (monthNumber) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
System.out.println("it has 31 days");
monthNumber = input.nextInt();
break;
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
System.out.println("it has 30 days");
monthNumber = input.nextInt();
break;
default:
System.out.println("it is not a valid number");
monthNumber = input.nextInt();
break;
}
}
}
}
}
当我想要考虑“Esc”或“Enter”等点击按钮时,我该如何处理这种情况?我认为使用 ASCII 码应该也适用。
这是我的代码的新版本:
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("Check number of days");
KeyEvent e;
if (e.getKeyCode() == KeyEvent.VK_ENTER)
{
System.out.println("enter the name or number of month: ");
int monthNumber=input.nextInt();
}
else if (Keyboard.getEventKey()==Keyboard.KEY_ESCAPE)
{
System.out.println("GoodBye");
}
}
}
但它有一个错误,说 e 对象可能尚未初始化...!!!!!我该怎么办?!!!
您当前正在制作一个命令行应用程序,它从标准输入读取内容并将内容打印到标准输出。如何处理按钮按下完全取决于运行程序的终端,并且大多数终端在按下转义键时不会向应用程序的标准输入发送任何内容。
如果您想捕获关键事件,则必须使用 AWT 或 Swing 制作 GUI 应用程序。如果您只想在程序运行时终止程序,请尝试按 Ctrl+C(这适用于大多数终端)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)