1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
311
311
EMPFEHLEN
-
11.11.10 11:15 #1
Hallo zusammen,
ich soll in einem von JDialog abgeleiteten Dialog bei der Texteingabe einige Tasten-/Tastenkombinationen für spezielle Aktionen auswerten.
So wird derzeit bspw. die Enter-Taste überschrieben, was auch prima funktioniert :
Code java:
Jetzt sollte eine weitere spezielle Funktion für die Tastenkombi <Shift><Enter> einbauen, was ich (wie üblich) über einen Accelerator lösen wollte :
Code java:1
jTextAreaKQT.setAccelerator(javax.swing.KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_MASK));
Leider musste ich zur Kenntnis nehmen, dass diese Methode für JTextArea nicht definiert ist ....
Habe ich hier irgendeine andere Möglichkeit
IMHO bringt es ja nichts, wenn ich die KeyEvents für Shift und Enter nacheinander abfrage, oder ?
Danke im voraus
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
11.11.10 11:22 #2
- Registriert seit
- Apr 2009
- Ort
- Düsseldorf (NRW)
- Beiträge
- 508
Du kannst in einem KeyListener der TextArea auch auf beides abfragen:
Code java:1 2 3
if (e.getKeyCode() == KeyEvent.VK_ENTER && e.isShiftDown()) { ... }
Quelle: Java-API, Klasse InputEventGeändert von Tim Bureck (11.11.10 um 11:32 Uhr)
-
11.11.10 11:29 #3
Moin,
oh, das klingt gut - die Methode kannte ich noch nicht
Werd's gleich mal austesten!
Danke und Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
11.11.10 11:56 #4
Moin,
hmm, schade ... der Effekt, den ich erzielen wollte, klappt leider noch nicht so ganz ...
Aber vlt. sollte ich auch besser dabei schreiben, was ich genau machen soll
In dem Dialog wird eine Textvorlage vorgeblendet, die dann vom Anwender weiter ausgefüllt werden muss.
Nun ist es der spezielle Wunsch meines Chefs, dass für den normalen Anwender beim Betätigen von ENTER statt den Einfügen einer neuen Zeile einfach nur der Cursor eine Zeile tiefer wandern soll (was auch problemlos klappt). Da er nun aber erkannt hat, dass dadurch nie neue, event. benötigte Zeilen eingefügt werden können, haben wir uns darauf geeinigt, dass eine neue Zeile mit SHIFT+ENTER eingefügt wird !
Allerdings klappt folgendes nicht :
Auch ohne den else-Fall erfolgt keine Reaktion !Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14
public void jTextAreaKQT_keyPressed( KeyEvent e ) { if( (e.getKeyCode()==KeyEvent.VK_ENTER) && !e.isShiftDown() ) { if( rbAusfuellen.isSelected() ) { e.setKeyCode( KeyEvent.VK_DOWN ); // das klappt wunderbar :-) } } else if( (e.getKeyCode()==KeyEvent.VK_ENTER) && e.isShiftDown() ) { e.setKeyCode( KeyEvent.VK_ENTER ); // hierauf erfolgt überhaupt keine Reaktion :-( } } // jTextAreaKQT_keyTyped
Habe ich irgendeine andere Chance, hier (von mir aus mit einer anderen Taste, bspw. VK_F2) eine neue Zeile einfügen - sprich das KeyEvent VK_ENTER anzstossen ?
Danke und Gruß
Klaus
Danke und Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
11.11.10 12:10 #5
ah - eine (vlt. etwas schmutzige) Lösung sieht so aus :
Code :1 2 3 4 5 6 7 8 9 10 11 12
if( (e.getKeyCode()==KeyEvent.VK_ENTER) && !e.isShiftDown() ) { if( rbAusfuellen.isSelected() ) { e.setKeyCode( KeyEvent.VK_DOWN ); } } else if( (e.getKeyCode()==KeyEvent.VK_ENTER) && e.isShiftDown() ) { int iPos = jTextAreaKQT.getCaretPosition( ); jTextAreaKQT.insert( "\n", iPos ); }
Ok, hat sich damit erledigt
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
Ähnliche Themen
-
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
Eingabe in der timeline: "time*100" - bei Effekt "turbulentes Versetzen"-"Evolution"
Von MTMonline im Forum Videoschnitt, Videotechnik & -produktionAntworten: 2Letzter Beitrag: 25.04.08, 09:49 -
JTextArea mach beim Speichern am ende einer Zeile ein "\r"
Von munuel im Forum JavaAntworten: 2Letzter Beitrag: 03.01.06, 14:54 -
Finder methods + JBoss + Was expecting one of: "CONCAT" "SUBSTRING" ... "(" ... <STRI
Von cengizhdde im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 6Letzter Beitrag: 27.05.05, 15:29 -
Datei-Eigenschaften: "erstellt:","Geändert am", "Letzter Zugriff:"
Von KILLSMAKER im Forum C/C++Antworten: 2Letzter Beitrag: 19.05.05, 19:51





Zitieren
Login





