Scannerクラスを使用してコンソールからの入力を受け入れるプログラムをJAVA言語で作成しました....
ユーザーが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」などのボタンを押すことを考慮したい場合、どのように対処すればよいですか? アスキーコードを使えば応用できると思います。
これは私のコードの新しいバージョンです:
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オブジェクトが初期化されていない可能性があるというエラーがあります...!!!!!どうすればいいですか?!!!!