/* Example focuslistener.c */ : button1=j_button(frame,"Button 1"); button2=j_button(frame,"Button 2"); button3=j_button(frame,"Button 3"); focuslst=j_focuslistener(button3); : while((obj=j_nextaction())!=frame) { if(obj == focuslst) if(j_hasfocus(focuslst)) j_setfocus(button2); } :
Nach dem Erzeugen der drei Buttons wird zunächst ein Focislistener an den dritten Button gebunden:
focuslst=j_focuslistener(button3);
Die Focus liefern sowohl bei Verlust, als auch bei Erlangen des Focus mit einem Event. Ob ein Objekt nun den Focus hat oder nicht, ist mit der Funktion
j_hasfocus(focuslst)
zu erfragen. Die Funktion liefert J_TRUE zurück, wenn das Objekt den Focus hat, und bei Verlust entsprechend J_FALSE. Mit der Prozedur
j_setfocus(button2)
kann einem Objekt der Focus aufgezwungen werden. Im Beispielprogramm verhalten sich die beiden ersten Button zunächst ganz normal. Wird einer dieser Button angeklickt, so erhält er auch den Focus, und kann dann auch mit der Leertaste ''gedrückt'' werden. Wird jedoch der dritte Button angeklickt, so wird diesem sofort der Focus entzogen, und dem mittleren Button zugeordnet. Somit kann der dritte Button niemals mit der Tastatur bedient werden.
|