我目前正在嘗試在Java中使用命令提示符在終端中控制筆來創建繪圖工具。通過終端在Java中改變筆的顏色
到目前爲止,我已經能夠實現命令來告訴筆移動,轉動等。現在,我試圖讓我的程序響應顏色命令,然後我嘗試將掃描儀放到閱讀下一個單詞。在我包含的代碼示例中,我試圖讓掃描儀檢測單詞「紅色」,然後更改筆的顏色(保留在「筆」類中的方法)。
所以,最好是在終端,我想鍵入:
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'列表中的其他「單詞」。 – RealSkeptic
謝謝@RealSkeptic的編輯 - 我看到我使用了錯誤的格式來顯示Java代碼。謝謝。 :) – Garwaire