私は現在、端末でコマンドプロンプトを使ってペンを制御して、Javaで描画ツールを構築しようとしています。端末からJavaのペンの色を変更する
これまで私は、ペンに移動や回転などを指示するコマンドを実装することができました。今、私のプログラムがカラーコマンドに応答するようにしようとしています。次の言葉を読んでください。私がインクルードしたコードの例では、スキャナに単語 "red"を検出させてからペンの色を変更しようとしました(このメソッドは "Pen"クラスに保持されています)。
ので、理想的には端末では、私が入力したいと思います:
colour red
...と赤にペンの色を変更する結果のアクションを取得します。
また、事前にお申し出ください。あなたが助けることができる前に知っておくべきことが他にあれば、私に知らせてください!
/**
* Allow the user to draw on the canvas by typing commands.
*/
public void draw()
{
boolean finished = false;
printWelcome();
printPenLocation();
while(!finished) {
LinkedList<String> command = reader.getInput();
if(!command.isEmpty()) {
String firstWord = command.get(0);
switch(firstWord) {
//Had more examples of case commands here, such as "move", "help", etc ...
case "colour":
Scanner scannerC = new Scanner(System.in);
String colour = scannerC.nextLine();
if (scannerC.nextLine().equalsIgnoreCase("red"))
{
pen.setColor(Color.RED);
}
else {
System.out.println("Unrecognised colour!");
}
break;
default:
System.out.println("Unrecognised command: " + firstWord);
break;
}
}
}
}
結果のコードは正しくコンパイルされ、エラーは発生しませんが、ペンの色は変わりません!私のコードを批判するために、専門家の目のペアに感謝します。
同じ入力ストリームに複数の入力読み取りクラス(スキャナ、リーダー)を持つことは想定されていません。これにより、それぞれがデータをバッファに読み込む際に問題が発生します。代わりに 'command'リストの他の" words "を見てください。 – RealSkeptic
@RealSkepticありがとうございました。私はJavaコードを表示するために間違ったフォーマットを使用しています。ありがとう。 :) – Garwaire