![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 09.10.2005
Beiträge: 4
|
Ich bastel hier grad nen kleinen Chat, bei dem ich ne JTextArea als Eingabefeld benutze. Über nen KeyListener fang ich ab, ob die [Enter] Taste gedrückt wird, lass den Text senden und lösch ihn aus dem Eingabefeld. Allerdings Wird danach immer noch automatisch ein Zeilenumbruch ins leere Feld eingefügt. Lässt sich das irgendwie unterdrücken?
Zusatzfrage: Kann man JTextAreas so einstellen, dass sie stattdessen Zeilenumbrüche bei Strg+Enter machen? Wenn nich, is auch nich schlimm, lässt sich ja per KeyListener machen. |
|
|
|
|
|
Nach oben #2 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
|
MouseEvent.consume(); ist dein Freund.
Ansonsten wäre es vielleicht nicht schlecht, wenn du dich mal über ActionMap und InputMap schlau machen würdest. Damit lässt sich das ganze nämlich etwas sauberer (wenn auch mit mehr Schreibarbeit) realisieren.
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #4 |
|
Neuer Benutzer
Registriert seit: 09.10.2005
Beiträge: 4
|
So, ich hab die Sache damals aufgegeben, hab jetzt aber wieder das gleiche Problem. Also hab ich mich mal in die Sache eingelesen und folgenden Code probiert:
Code:
InputMap inputmap = txtIn.getInputMap(); inputmap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, Event.CTRL_MASK), inputmap.get(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0))); inputmap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)); Edit: Aus irgendeinem mysteriösen Grund tuts jetzt, wies soll :confused: Edit2: Jetzt tuts wieder nicht. Es ist wie verhext. Edit3: So, nächster Lösungsansatz, der eh eleganter ist, weil die Inputmap nur für diese eine Komponente geändert wird: Code:
InputMap inputmap = new InputMap(); inputmap.setParent(txtIn.getInputMap(JComponent.WHEN_FOCUSED)); inputmap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, Event.CTRL_MASK), inputmap.get(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0))); inputmap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), new Object()); txtIn.setInputMap(JComponent.WHEN_FOCUSED, inputmap); |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [JS] Formular nicht mir [ENTER] abschicken | Sclot | JavaScript und AJAX | 3 | 21.01.2007 09:07 |
| [Enter] an Komponente senden. | J0y | Desktop-Applikationen und Grafik | 4 | 06.10.2005 11:54 |