"setAccelerator/KeyStroke" bei JTextArea ?

VfL_Freak

Top Contributor
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 :
Java:
if( e.getKeyCode() == KeyEvent.VK_ENTER )
{
	if( rbAusfuellen.isSelected() )
	{
	     e.setKeyCode( KeyEvent.VK_DOWN );
        }
}

Jetzt sollte eine weitere spezielle Funktion für die Tastenkombi <Shift><Enter> einbauen, was ich (wie üblich) über einen Accelerator lösen wollte :
Java:
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 .... :eek:

Habe ich hier irgendeine andere Möglichkeit ???:L
IMHO bringt es ja nichts, wenn ich die KeyEvents für Shift und Enter nacheinander abfrage, oder ?

Danke im voraus ;)
Gruß
Klaus
 

VfL_Freak

Top Contributor
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 :p

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 :
Java:
	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
Auch ohne den else-Fall erfolgt keine Reaktion !

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 anzustossen ?

Danke und Gruß
Klaus


Danke und Gruß
Klaus
 

VfL_Freak

Top Contributor
ah - eine (vlt. etwas schmutzige :D ) Lösung sieht so aus :

Java:
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ß
Klaus
 

thE_29

Top Contributor
Achso, du willst nachher eine andere Taste dann drücken lassen..
Najo, das kannste halt so machen oder einen neuen "Event" in die MessageQueue schicken..

Wenn du nur ein Enter brauchst, wird das sicher der schneller weg sein.

Eventuell im Listener noch ein
Java:
e.consume();
machen, sodass die Verarbeitung abgebrochen wird (eventuell andere Listener, etc.).
 

VfL_Freak

Top Contributor
Moin,

Achso, du willst nachher eine andere Taste dann drücken lassen..

Eventuell im Listener noch ein
Java:
e.consume();
machen, sodass die Verarbeitung abgebrochen wird (eventuell andere Listener, etc.).

na ja, nicht ganz :noe:

Als 'Standard' soll bei der ENTER-Taste KEINE neue Zeile eingefügt werden, sondern nur der Cursor nach unten bewegt werden ....
Da man jetzt aber gemerkt hat, dass man gelegentlich doch eine neue Zeile benötigt, habe ich es nun (nach Rücksprache) in der o. g. Weise (mit <F5>) gelöst :D

Mit dem e.consume() würde ja das Event gar nicht ausgelöst !


Sind halt die Speziallösungen meines Chefs ..... :lol:

tschüss
Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
F JMenuItem mit KeyStroke kombinieren AWT, Swing, JavaFX & SWT 1
L HashSet.add(KeyStroke)? AWT, Swing, JavaFX & SWT 4
H shell in view implementieren; menu mit keystroke unterlegen AWT, Swing, JavaFX & SWT 8
Pithecanthropus Swing Vordefinierten KeyStroke löschen AWT, Swing, JavaFX & SWT 3
R KeyStroke und Locale AWT, Swing, JavaFX & SWT 7
T Problem mit KeyStroke auf JMenuItem (1.4.2 <-> 6) AWT, Swing, JavaFX & SWT 3
F KeyStroke für mehrere KeyEvents AWT, Swing, JavaFX & SWT 4
V JTable Handling Fokus on Keystroke und Maus Doubleclick AWT, Swing, JavaFX & SWT 9
K KeyStroke als Text AWT, Swing, JavaFX & SWT 2
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
RedEagle Swing JTextArea ist leer AWT, Swing, JavaFX & SWT 13
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
K Swing 2 JTextArea parrallel scrollable AWT, Swing, JavaFX & SWT 16
Hatsi09 JTextArea Inhalt verlinken AWT, Swing, JavaFX & SWT 4
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
S Ausgabe in JTextArea AWT, Swing, JavaFX & SWT 13
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
F 2D-Grafik JTextArea drucken bringt mieses Ergebnis AWT, Swing, JavaFX & SWT 2
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
Bluedaishi JtextArea AWT, Swing, JavaFX & SWT 6
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
F JTextarea Steuern ~ consolenanbindung AWT, Swing, JavaFX & SWT 5
F Event Handling JTextArea auf bestimmte Eingabe reagieren (Return-Taste) AWT, Swing, JavaFX & SWT 2
F JTextArea hat keinen Rahmen AWT, Swing, JavaFX & SWT 10
N JTextArea Events weiterleiten AWT, Swing, JavaFX & SWT 3
R JTextArea mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 6
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
HoloYoitsu jTextArea.setCaretPosition(); What am I doing wrong? AWT, Swing, JavaFX & SWT 0
S Zeilenumbruch jTextArea mit toString AWT, Swing, JavaFX & SWT 2
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
M JTextArea - Leertaste "sperren" AWT, Swing, JavaFX & SWT 1
S Inhalt der Java-Konsole in die JTextArea AWT, Swing, JavaFX & SWT 3
M Swing JTextArea mit ScrollBar AWT, Swing, JavaFX & SWT 9
S Swing Zahl der Zeilenumbrüche in einer JTextArea bestimmen AWT, Swing, JavaFX & SWT 1
F Swing Caret in JTextArea vergrößern AWT, Swing, JavaFX & SWT 2
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
N JFrame änliches wie JTextArea? AWT, Swing, JavaFX & SWT 2
A Swing JTextArea - Multi-Line-Editing AWT, Swing, JavaFX & SWT 2
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
O JTextArea befüllen AWT, Swing, JavaFX & SWT 2
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
T Swing Ausgabe aus ArrayList in Klasse1 in jTextArea in Klasse2 AWT, Swing, JavaFX & SWT 2
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
B Drucken der JTextArea AWT, Swing, JavaFX & SWT 4
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
Hoppelmann Swing Tasten in JTextArea blockieren AWT, Swing, JavaFX & SWT 2
S JTextArea Tastaturanschläge AWT, Swing, JavaFX & SWT 2
E Swing JTextArea in JFrame, wie nun WindowFocusListener implementieren? AWT, Swing, JavaFX & SWT 2
S Problem mit JButton und JTextArea AWT, Swing, JavaFX & SWT 2
J Swing Mitwachsende JTextArea+ JPanel AWT, Swing, JavaFX & SWT 4
P Swing JtextArea füllen mit setText AWT, Swing, JavaFX & SWT 7
M Probleme mit der Selektion einer JTextArea AWT, Swing, JavaFX & SWT 3
T Die Größe einer JTextArea an Ihren Parent JPanel anpassen. AWT, Swing, JavaFX & SWT 5
hdi Swing ListCellRenderer + JTextArea + LineWrap AWT, Swing, JavaFX & SWT 6
T ComponentOrientation in JTextArea AWT, Swing, JavaFX & SWT 3
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
G Swing JTextArea mit fester Anzahl Spalten! AWT, Swing, JavaFX & SWT 10
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
L JTextArea mit JScrollPane AWT, Swing, JavaFX & SWT 7
padde479 Swing replace JTextArea funktioniert nicht AWT, Swing, JavaFX & SWT 2
L Zeilenumbrüche aus JTextArea MIT in Textdatei schreiben AWT, Swing, JavaFX & SWT 4
_dp jTextArea/jTextPanel Auto Höhe AWT, Swing, JavaFX & SWT 5
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
Ollek Text in JTextField und JTextArea zur Laufzeit ändern AWT, Swing, JavaFX & SWT 6
P Datenelement anderer Klasse in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
P Scrollbar JTextArea AWT, Swing, JavaFX & SWT 23
M Swing Ausgabe in JTextArea verzögern AWT, Swing, JavaFX & SWT 7
T Swing jTextArea soll sich der Fenstergröße anpassen beim ziehen?? AWT, Swing, JavaFX & SWT 2
S System.out in JTextArea AWT, Swing, JavaFX & SWT 4
S Swing JTextArea - Bild auf/ab Tasten implementieren AWT, Swing, JavaFX & SWT 4
J JTextArea verschwindet bei resize vom JFrame AWT, Swing, JavaFX & SWT 2
P Swing JTextArea - beim neuzeichnen bleibt manchmal weißer Kasten AWT, Swing, JavaFX & SWT 10
Dit_ JTextArea zu Zeile X scrollen AWT, Swing, JavaFX & SWT 4
H variable Höhe einer JTextArea (als Renderer/Editor) als Zelle einer JTable AWT, Swing, JavaFX & SWT 9
B Wechsel JTextArea und JComponent AWT, Swing, JavaFX & SWT 9
M [erledigt] Bestimmte Zeile aus JTextArea löschen AWT, Swing, JavaFX & SWT 3
G Swing JTable und JTextArea synchronisieren AWT, Swing, JavaFX & SWT 2
C JLabel, JTextArea, JScrollPane. repaint(); ? AWT, Swing, JavaFX & SWT 6
M JTextArea AWT, Swing, JavaFX & SWT 2
E Swing JTextArea Alternative? AWT, Swing, JavaFX & SWT 5
A Swing JTextArea über Frame hinaus anzeigen? AWT, Swing, JavaFX & SWT 2
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
N JTextArea.setLineWrap Bug? AWT, Swing, JavaFX & SWT 3
N Swing JTextArea/JScrollpane: JScrollbar position AWT, Swing, JavaFX & SWT 8
I JTextArea mit Copy Paste Funktion AWT, Swing, JavaFX & SWT 7
M Swing JTextArea größe anpassen & setBackground liefer Nullpointer AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben