Подскажите пожалуйста, делаю простое консольное приложение, где создается поток который выполняет какое то действие, во время выполнения хочу по нажатию клавиши 'Escape' прекращать выполнение программы. В swing это можно сделать с помощью KeyListener. Можно ли с консоли выполнить данное действие?
Решил данный вопрос с помощью сторонней библиотеки JNativeHook. Может кому то поможет. Так же можно решать с помощью создания паралельных потоков. Оставленный в комментарии ответ по поводу System.in.read() не совсем подходил в данной ситуации, так как он ожидает выполнения действия, и только после этого продолжает выполнение. Идея была, при паралельном выполнении программы, в случае нажатии клавиш клавиатуры, выполнялись определенные действия(хотя может я просто не правильно юзал System.in.read(), а у Вас все получится!!:).
http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html
public class AirBallon {
private static int x_location=350;
static JFrame finalMenu=new JFrame();
public static void start1(){
finalMenu.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
switch (evt.getKeyCode() ) {
case KeyEvent.VK_RIGHT:
if(x_location>700)
break;
right(x_location);
x_location++;
System.out.println(x_location);
break;
case KeyEvent.VK_LEFT:
if(x_location<0)
break;
right(x_location) ;
x_location--;
break;
case KeyEvent.VK_UP:
up();
break;
default:
System.out.println("");
break;}
private static void right(int k) {
labe2.setBounds(k, 450, 100, 150);}
}
С java не знаком, пример взял от сюда
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть данный кодСуть его такова - пишем в консоль слова через пробел, а программа ищет наиболее часто встречающиеся слова и выводит их в порядке...
Помогите, пожалуйста, прояснить ситуациюЕсть конструкция вида: