Wie Tastatureingaben ignorieren?

it-girl

Aktives Mitglied
Hallo zusammen,

ich schreibe gerade an einem Programm, bei dem ich nur mit der Maus navigieren möchte. Das heißt, das Programm soll nicht auf Tastatureingaben reagieren. Dabei denke ich besonders an die Entfernen-Taste, die mir nichts löschen können darf!
Die anderen Tasten sind eigentlich egal, weil sie in meinem Programm eh nichts weiter anrichten.

Hat jemand eine Idee wie man das implementieren muss?

Vielen Dank schon mal für eure Antworten 🙂

LG
IT-girl
 
Das heißt, das Programm soll nicht auf Tastatureingaben reagieren. Dabei denke ich besonders an die Entfernen-Taste, die mir nichts löschen können darf!
Muss der Anwender keine Texte eingeben können? Die Entf Taste wirkt doch eigentlich nur bei Textkomponenten? Diese könnte man deaktivieren? Oder deren InputMap manipulieren, so dass einzelne Tasten keine Wirkung mehr haben.
Eventuell beschreibst Du ein bisschen was genau Du vorhast.
 
Man muss auch keinen Text eingeben können. Es handelt sich bei dem Programm nur um einen graphisch dargestellten Baum, in dem man mit der Maus navigieren kann, also zoomen, verschieben, anklicken und so. Und nun ist es eben so, dass wenn ich einen Knoten des Graphen anklicke und dann Entfernen drücke, dann ist er weg. Aber das soll er ja nicht. Deshalb möchte ich gerne die Entfernen-Taste "ausschalten", wenn das möglich ist. Falls nicht, muss ich mir was anderes überlegen *grübel*

LG
IT-girl
 
Ja, aber wie stellst du diese Knoten da?
Mein erster Gedanke wäre bei sowas ein Component mit überschriebener paintC., aber da ist sowas natürlich nicht möglich wenn man es nicht selbst implementiert.
 
Also die Knoten werden mit einer Bibliothek (Class Node) von yWorks (yWorks - The Diagramming Company) erzeugt und dargestellt (wird dir wahrscheinlich nicht viel sagen...).
Aber es ist eben so, dass die Knoten gelöscht werden, wenn man Entfernen drückt.

Meine Idee wäre, dass man einen KeyListener auf Entfernen setzt und dann als Aktion einfach *nichts* macht. Ich weiß, das ist nicht besonders elegant... Hat jemand eine bessere Lösung? 😉
 
Hallo,

schau dir mal diesen Link an: http://www.java-forum.org/awt-swing-swt/106609-thread-problem-darstellung-beim-sperren-fensters.html#post682175

Das ist zwar etwas mehr als du haben willst, aber die Klasse GlassPaneTastaturListener und die Methode mbehandleAWTEventListener() dürften für dich interessant sein. Damit kann man die komplette Tastatur sperren.
Vielleicht kannst du das ja bei dir irgenwie einbauen.

Alternativ könntest du ja versuchen die Methode für den Knoten, der für die Tastaturevents bzw. Listener zuständig ist zu überschreiben, so das diese Componente nicht mehr darauf reagiert. Vielleicht gibt es da bereits schon entsprechende Methoden ala removeKeyListener() etc.

MfG
hansmueller
 
Vielen Dank, hansmueller!:toll:
Hab es etwas abgeändert, sodass nur die Entfernen-Taste abgeschaltet wird (wollte das Programm ja noch mit Alt+F4 schließen können 😉 Und wer weiß, welche Anforderungen später mal hinzukommen...

LG
IT-girl
 

Zurück
Oben