Bildschirmtastatur

Status
Nicht offen für weitere Antworten.

JanHH

Top Contributor
Hallo,

habe ein Problem: Ein Programm enthält (u.a.) Textfelder (JTextArea), und die Eingabe in diese Felder soll alternativ zur "normalen" phyischen Tastatur auch mittels einer einblendbaren Bildschirmtastatur erfolgen (so wie z.B. diese Dinger die man bei PDAs hat). Die Frage ist nur, wie macht man das. Eine Bildschirmtastatur zu programmieren mit Buttons, die bei Klick dann KeyEvents erzeugen, ist ja nicht so schwierig, aber wie wendet man diese Events dann auf JTextAreas an? dispatchEvent() tut jedenfalls gar nix. Weiss jemand wie's geht? Ist der Ansatz mit KeyEvents evtl komplett falsch?

Gruß und Danke
Jan
 

JanHH

Top Contributor
Key-Events sind die deutlich bessere Lösung (wie hängt man z.b. backspace an den Text an?), und ausserdem soll nicht nur eine TextArea damit bedient werden, sondern noch andere Teile des Programms. Eine Lösung mit KeyEvents ist viel flexibler und vom Klassendesign auch besser passend bzw einfacher integrierbar.

Ich habs mittlerweile allerdings auch hinbekommen, gebe gerne darüber Auskunft wenn Interesse besteht.

Gruß
Jan
 

André Uhres

Top Contributor
JanHH hat gesagt.:
..Ich habs mittlerweile allerdings auch hinbekommen, gebe gerne darüber Auskunft wenn Interesse besteht..
Stell's einfach mal hier rein. Europa ist gross, und irgendwann wird's schon jemand interessieren :wink:
 

JanHH

Top Contributor
Ganz vergessen. Also:

Grundsätzlich ist es richtig, KeyEvent-Objekte zu erzeugen und der Komponente, die angesprochen werden soll, diese mit dispatchEvent() zu übergeben. Das "Problem" ist nur, dass java sehr sensibel darauf regaiert, dass es die "richtigen" KeyEvents sind. Man muss die "echten" also exakt nachbauen, auch die Reihenfolge (KeyTyped, KeyPressed, KeyReleased, glaub ich). Die Frage ist dann, wie erfährt man wie "richtige" KeyEvents aussehen? Dazu habe ich mit den call stack beim drücken einer Taste mal genauer angeschaut und dabei eine Funktion (ich bin mir nicht mehr exakt sicher wie sie heisst, aber ich glaube so) "protected processKeyEvent" gefunden. Dann habe ich eine Klasse von JTextArea abgeleitet, die nix weiter macht als diese Funktion zu überschreiben:

Code:
protected void processKeyEvent(KeyEvent e)
{
   super.processKeyEvent(e);
   System.out.println(e);
}

Dadurch wird dann alles, was an Events an die JTextArea geschickt wird, angezeigt, und man kann es in Ruhe analysieren und nachbauen. Vor allem bei Sonderzeichen und Kombinationen aus Tasten nicht so einfach ;). Aber problemlos machbar.

Gruß
Jan
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Bildschirmtastatur AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben