В настоящее время я пытаюсь создать инструмент рисования на Java, управляя ручкой, используя командные подсказки в терминале.Изменение цвета пера в Java через терминал
До сих пор я мог реализовывать команды, чтобы передать перо для перемещения, поворота и т. Д. Теперь я пытаюсь заставить свою программу отвечать на команду цвета, а затем попытался вставить сканер в прочитайте следующее слово. В примере кода, который я включил, я попытался заставить сканер обнаружить слово «красный», а затем изменить цвет пера (метод, который хранится в классе «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'. – RealSkeptic
Спасибо @RealSkeptic за это редактирование - я вижу, что я использовал неправильный формат для отображения кода Java. Благодарю. :) – Garwaire