РЕДАКТИРОВАТЬ: Предполагается, что вы делаете графический интерфейс с использованием javafx.Я не уверен, работает ли он в командной строке, но, вероятно, нет: /
РЕДАКТИРОВАТЬ 2: незначительная вещь, но если вы обновляете макет после каждого случая, вы можете вместо этого просто обновить макет внеобласть действия if / else.Хорошей практикой является выделение кода и избежание кодирования с копированием-вставкой
Существует очень простой способ сделать это, используя EventHandlers и KeyEvents!
Это реализация, использующая оператор switch.Вы можете заменить переключатель на блок if / else, если он вам больше подходит, но если вы не знаете операторов switch и действительно хотите усовершенствовать свои знания в области кодирования, обязательно изучите их!
import javafx.event.EventHandler;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
public class SomeClass {
public SomeClass() {
//constructor elided
}
//Within your class containing your methods, have this private class.
private class KeyHandler implements EventHandler<KeyEvent> {
@Override
public void handle(KeyEvent e) {
KeyCode keyPressed = e.getCode();
switch (keyPressed) {
case W:
//do W thing
break;
case A:
//do A thing
break;
case S:
//do S thing
break;
case D:
//do D thing
break;
default:
break;
}
}
}
}
Bestудачи!Веселого программирования!ps Вы можете удалить комментарий "// TODO Auto-Генерируемый метод-заглушка" - это просто примечание от программного обеспечения для редактирования, что метод должен быть заполнен!