私はJavaプログラミングの初心者で、アドバイスを探しています。私は、ユーザーにコマンドを入力するように求める非常に単純なプログラム/アプリケーションを作成しました。コマンドは、ユーザーが指定した場所、サイズ、色でグラフィック画面に基本的な形状を表示します。
スキャナークラスを使用して、キーボードからユーザー入力を取得しました(たとえば、ユーザータイプが100 150に移動し、グラフィックス画面のペンがX = 100、Y = 150に移動するか、 circle 100と入力して、指定したx、yで円の半径100を表示します座標)
ユーザーが間違ったコマンドを入力した場合、何も入力しようとしなかった場合、またはランダムなキーストロークを入力しようとした場合(たとえば、コマンドのスペルを間違えた場合、またはコマンドに十分な値を指定しなかった場合)、エラーメッセージを返したいです。
現時点では、プログラムがクラッシュし、再起動する必要があります
import java.util.Scanner;
public class Assign1 {
public final static void main(String [] args) {
System.out.println("Let's draw something on the screen!");
GraphicsScreen graphics = new GraphicsScreen();
Scanner input = new Scanner(System.in); // used to read the keyboard
String next; // stores the next line input
String[] one;
do {
System.out.print("Enter a command (\"stop\") to finish : ");
System.out.print("Type 'help' for a list of commands ");
next = input.nextLine();
one = next.split(" ");
String command = one[0];
if(next.contains("help")) {
System.out.println("Type 'move' followed by an X and Y co-ordinate to move the graphical pointer.");
System.out.println("Type 'circle' followed by a radius value to output a circle.");
System.out.println("Type 'line' followed by an X and Y co-ordinate to draw a line.");
System.out.println("Type 'clear' to reset the graphical canvas.");
}
if(next.contains("move")) {
int x = 0;
int y = 0;
x = Integer.parseInt(one[1]);
y= Integer.parseInt(one[2]);
graphics.moveTo(x, y);
}
if( command.equalsIgnoreCase("circle")) {
int radius = 0;
radius = Integer.parseInt(one[1]);
graphics.circle(radius);
}
if(command.equalsIgnoreCase("line")) {
int x = 0;
int y = 0;
x = Integer.parseInt(one[1]);
y= Integer.parseInt(one[2]);
graphics.lineTo(x,y);
}
if(next.contains("clear")) {
graphics.clear();
}
} while ( next.equalsIgnoreCase("stop") == false );
System.out.println("You have decided to stop entering commands. Program terminated!");
graphics.close();
グラフィックス画面に必要なすべてのコードが、という別のドキュメントにあります。
graphicscreen.java
特定のコマンドの1つ以外が入力された場合に、ユーザーのテキスト入力を検証してエラーメッセージを表示する方法の提案を探しています。
さまざまなWebページで見つけたifステートメントやwhileループなどを使用してみましたが、まだ機能していません。
どんな提案でも大歓迎です。