Loading...
eqinox avatar eqinox 5 Точки

Lanterna console четене на input

Има една библиотека lanterna, която може да ти създаде нова конзола. Подкарвам я и права това онова, само че не мога да пиша с клавиатурата по нея и следователно не мога да прочитам какво потребителя е въвел. Прочетох какво ли не в интернет ама не намерих решение на проблема и затова реших да пиша тук.

Опитвам се да подкарам друга конзола защото конзолата на java няма позициониране на курсора и не можем да направим свестна игра. Намерих тази конзола, ако някой намери някоя друга по-лесно работещо се с нея, нека я даде : )

Тагове:
1
Java Advanced
Vasilsk avatar Vasilsk 109 Точки

Ако не се лъжа JFrame би трябвало да върши същата работа. То е допълнителен прозорец, който можеш да си генерираш. Може да видиш в гугъл как се подкарва.

1
ZvetanIG avatar ZvetanIG 907 Точки
>Четенето става чрез метода screen.readInput(). Този метод чете един символ. Връща като резултат обект от класа Кеу.
Пример с който може да хванем бутона ESC.

Key key = screen.readInput();

if ((key != null) && (key.getKind() == Key.Kind.Escape)) {

// any code

}




0
eqinox avatar eqinox 5 Точки

Пробвах така естествено, но нещо не става. То не ми дава да пиша по тая конзола, не ми дава да правя нищо. Като натискам букви или което и да е копче от клавиатурата и нищо не се случва. Карай ше пробвам с това JFrame

0
ZvetanIG avatar ZvetanIG 907 Точки

По принцип при този метод клавишите, които си натиснал не се отпечатват на екрана. 

Ако искаш да се вижда какво натискаш, ти трябва нещо подобно:

 

        Terminal terminal = TerminalFacade.createTerminal(Charset
                .forName("UTF8"));


        Screen screen = new Screen(terminal);


        screen.startScreen();
        
        
         while (true) {
                Key key = screen.readInput();
        
                if (key != null) {
                    do {
                        terminal.putCharacter(key.getCharacter());
                    } while (key.getKind() == Key.Kind.Enter);
                    
                }
         }

 

0
nikolay.dimov83 avatar nikolay.dimov83 143 Точки

Трябва да вкараш input-а в безкраен while цикъл и ще тръгне.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.