Event

7 отговора 182 прегледа
#1

Event

Kak moga da prihvana absoluitno vsi4ki eventi (kolkote e vazmojno po low level)koito se pra6tat kam JFrame. Triabva ma prosto da gi logn-a (6te mi svarshi rabota i da im otpe4atam Id-tata sas system.out.println)

Отговор
в отговор на BBS #2

Re: Event

в класа java.awt.Component има 1 метод

protected void processEvent(AWTEvent e)

тва ти треба

Johny Cage

------------------------------------------------
DOOM Will Never Die, Just The Players
Отговор
в отговор на Johny Cage #3

Re: Event

Добре, а възможно ли е да подавам low-level евенти към JFrame.
Общо взето ми трябват възможностите които дава Robot класа.

По точно да пращам mousePress, mouseMove, mouseRelease, keyPress и keyRelease евенти кам JFrame. Само че не искам да позвам Robot защото не желая да местя курсора на мишката в действителност или да натискам бутон. Мога ли някак си да симулирам тези евенти и да ги подам само към желания от мен JFrame(или някакъв друг контейнер ако се налага)?

Отговор
в отговор на Johny Cage #4

Re: Event

Predifinirah processEvent po slednia na4in:
protected void processEvent(AWTEvent e)
{
System.out.println(e.getID());
super.processEvent(e);
}

i tova mi podava samo tri eventa s id-ta: 205,200 pri startirane na application-a i 201 pri spiraneto mu

Отговор
в отговор на BBS #5

Re: Event

Taka mozhesh da vidish vsichki events:
java.awt.Toolkit.addAWTEventListener

AWT grubo kazano raboti taka pod Windows:
AWT-Windows nishkata syzdava prozortzite i obrabotva sistemnite eventi (tova vkliuchva syzdavane na AWTEvent obekti na bazata na poluchenite sistemni eventi) na nisko nivo, sled koeto post-va v tekushtata EventQueue. AWT-EventQueue-0 nishkata gi izprashta do samite komponenti.
Niama nachin da vidish systemnite eventi osven ako ne pipash na mnogo nisko novo.

Mozhesh da probvash tova:
java.awt.Component.dispatchEvent(new MouseEvent(...))
no niamam predstava kakvo shte se poluchi.

Отговор
в отговор на antijb #6

Re: Event

Probvah sas slednoto ne6to:

KeyEvent ke = new KeyEvent(this,401,0,0,39);
java.awt.Component.dispatchEvent( ke );

no polu4avam slednata gershka:

non-static method dispatchEvent(java.awt.AWTEvent) cannot be referenced from a static context at line 164 (164:24)

Men v kraina smetka me interesuva dali moga da pra6tam eventi kato tezi koito pra6ta Robot-a bez v deistvitelnost da mi marda kursora.

Отговор
в отговор на BBS #7

Re: Event

Estestveno che shte poluchish tazi "greshka". Triabva da imash instance na obekt za da vikash dispatchEvent.
KeyEvent ke = new KeyEvent(this,401,0,0,39);
new javax.swing.JFrame.dispatchEvent( ke );

Отговор
в отговор на antijb #8

Re: Event

A kak to4no da izpozvam
java.awt.Toolkit.addAWTEventListener

Отговор