Простой ключевой слушатель - Java - PullRequest
0 голосов
/ 28 марта 2011

У меня есть кусок кода, который находится в бесконечном цикле. Я хотел бы реализовать метод, который проверяет, нажимаю ли я кнопку или нет как прерыватель цикла.

while(true)
{
...
   if(this.escapeKeyIsPressed()) //Should return true if escape is pressed at that milisecond
   {
       ... 
       break; 
   }
}

Какой самый простой способ сделать это в Java? В какую библиотеку я должен заглянуть?

Заранее спасибо за ваше время.

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

На этой странице представлен метод перевода консоли в неблокирующий режим для чтения символа, который можно использовать для прерывания цикла. Он также представляет несколько других методов как для Python, так и для Java, но его следует считать несколько хакерским и непереносимым (например, не будет работать под Windows). Я не думаю, что есть «хороший» простой способ сделать это, я боюсь.

1 голос
/ 28 марта 2011

К сожалению, интерфейс KeyListener предоставляется пакетом "java.awt.event", который является частью Java-инструментария для работы с графикой и окнами, что означает, что этот класс может использоваться только оконными приложениями (например, Swing программы и апплеты).

Могут существовать сторонние решения, но ядро ​​Java не обеспечивает надежного способа сделать то, о чем вы просите.

...