Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 26 Май, 2012, 02:24:43

Страниц: [1]
Печать
Автор Тема: Имитация работы клавиатуры(и не только)  (Прочитано 2267 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Rotten    ↓ 
26 Октябрь, 2009, 03:09:07
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 9
Сообщений: 2088
Сила слова: 0.43

Всем привет. Вообщем то прочел том один по джаве. Пишу первое приложение.
Интересует вот что. Можно ли как то иным образом имитировать нажатие клавиш(ну или кликов кнопок мыши), не прибегая к использования класса Robot? Я понял, что этот класс нацелен на дебаговые действия.
Что мне надо? По теме надеюсь, ясно). имитировать в текстовом поле нажатия клавиш с клавиатуры.
Перерыл много чего. Сам вот класс KeyEvent - заинтересовало что в доке есть конструктор. В книжке где я читал, примера его использования я не видел да и в недрях нета чтото молчат о нем. Мда, сложновато на 1й взгляд выглядит - определения конструктора с параметрами, но главное, мне почемуто кажеться что этот клас просто инициируеться и никаких имитаций не делает.
 
Java
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar)
Вообщем, после его использования, компилятор то скомпилил файл, но изминений никаких...
Мне кажется я вообще не в ту сторону двигаюсь.
Буду очень признателен если хоть малейшый намек кинете)...
Спустя 1 минуту 58 секунд добавил
class KeyEvent - An event which indicates that a keystroke occurred in a component.
Просто мониторит нажатия клавиш значит.
Ну то что в обработчиках он используеться для выслежывания нажатий клавиш - это я в курсе. Пробовал.
А вот тут как быть....
Записан

Жизнь слишком коротка чтобы тратить ее на бестолковое внимание троллям, мудакам, задротам и прочим отбросам общества...
phpdude    ↓ 
26 Октябрь, 2009, 03:10:34 , спустя 1 минуту 27 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

так а что сложного то? .... обработчик нажатия - обычная функция класса. просто вызови ее с нужными параметрами да и все ...
 
если я правильно понял вопрос
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Rotten    ↓ 
26 Октябрь, 2009, 03:14:31 , спустя 3 минуты 57 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 9
Сообщений: 2088
Сила слова: 0.43

phpdude, Не-не)...
то я в курсах)....
Я хочу имитировать нажатие клавиши так чтобы символ соответствующий отобразился в текстАрее))
Обработчик(тот что имплементирует KeyListener) - просто же выслежывает нажатия самих клавиш.....
Записан

Жизнь слишком коротка чтобы тратить ее на бестолковое внимание троллям, мудакам, задротам и прочим отбросам общества...
krasun    ↓ 
26 Октябрь, 2009, 03:20:22 , спустя 5 минут 51 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1379
Сила слова: 2.97

Тогда зачем тут вообще обработчик, по-моему все просто,  просто пишешь символ в текстарею, необходимый и все. Зачем усложнять  
Спустя 25 секунд добавил
или я не понимаю суть задачи
Записан
phpdude    ↓ 
26 Октябрь, 2009, 03:27:42 , спустя 7 минут 20 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

обработчик что делает? а листенер? ОН ЗАПУСКАЕТ ФУНКЦИИ по получени нажатий, так ты просто ЗАПУСТИ ФУНКЦИИ. хули такого? :)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Rotten    ↓ 
26 Октябрь, 2009, 03:30:22 , спустя 2 минуты 40 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 9
Сообщений: 2088
Сила слова: 0.43

krasun, Допустим)
Я тоже сначала так думал - в обработчике выследить что нажимается, это символ записать там в память/буфер, и этот символ превращая в стринг вбивать тупо в текстарею...
Но суть задачи - это откат/повтор(undo/redo) действий, которые творяться в поле(текстАреа)......Там бы надо было не только вставлять/отрезать символы, но и имитировать некие сложнейшие действия.....Я пришел к выводу что это и есть имитация клавиш.....
 
Вот и все, как бы тут...
Но, может я немного алгоритм не так сопоставляю...для решения этой задачи....
В прикладном кодинге - пока не очинь.
Записан

Жизнь слишком коротка чтобы тратить ее на бестолковое внимание троллям, мудакам, задротам и прочим отбросам общества...
Rotten    ↓ 
26 Октябрь, 2009, 03:38:22 , спустя 8 минут
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 9
Сообщений: 2088
Сила слова: 0.43

phpdude, Мне функцию запускать не надо)
мне надо - грубо говоря - "вписать символ в текстарею без нажатия клавиши". Словно так, как бы это бы сделал метод  Robot.keyPress(int keyKode)/Robot.keyRelease(int keyKode);
Записан

Жизнь слишком коротка чтобы тратить ее на бестолковое внимание троллям, мудакам, задротам и прочим отбросам общества...
CTAPbIu_MABP    ↓ 
26 Октябрь, 2009, 05:07:29 , спустя 1 час 29 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

phpdude, не ты не понял
 
есть его объект текстареи у которого переопределен onKeyDown(Event e)
и он хочет его запускать так чтоб
onKeyDown(new KeyEvent(...))
но так незя
юзай робот
 
чтобы вписать чтото в текст арею пробуй писать
 
Java
TextField tf = new TextArea(...)
tf.setText("ебанирот")
Записан

java.lang.OutOfMemoryError
Rotten    ↓ 
26 Октябрь, 2009, 05:44:03 , спустя 36 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 9
Сообщений: 2088
Сила слова: 0.43

CTAPbIu_MABP,
Немножко не то)....
смотри..
во-первых у меня никакой OnKeyDown не переопределен....Зачем? я ж не могу заведомо знать что пользователь нажмет))...
А если переопределять чтото - то явно все методы с интерфейса KeyListener....
2. чтобы присвоить текст в текстарию - не обязательно присваивать тип TextField.
можно просто
Java
textArea.setText("fuck_off");
, техтария просто наследует этот метод в javax.swing.text.JTextComponent
Но дело не в этом....Дело в том что присваивая заново весь текст - мы стираем все что было до того..а если изминения было произведены в какойто маленькой части всего текста?.....
Короче.....тут наверное без того Робота н еобойтись...
так и сделаю....значит..
Записан

Жизнь слишком коротка чтобы тратить ее на бестолковое внимание троллям, мудакам, задротам и прочим отбросам общества...
CTAPbIu_MABP    ↓ 
27 Октябрь, 2009, 04:53:23 , спустя 23 часа 9 минут 20 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

Rotten,  главное что ты мну понял
Записан

java.lang.OutOfMemoryError
grigoriyi    ↓ 
17 Январь, 2010, 10:43:38 , спустя 82 дня 5 часов 50 минут 15 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 9
Сила слова: 0


phpdude, Мне функцию запускать не надо)
мне надо - грубо говоря - "вписать символ в текстарею без нажатия клавиши". Словно так, как бы это бы сделал метод  Robot.keyPress(int keyKode)/Robot.keyRelease(int keyKode);

а зачем такие сложности?
Записан
Страниц: [1]
Печать
 

Перейти в: