TAB in JTextArea entfernen
-
Hallo zusammen,
ich habe das Problem das ich eine JTextArea mit dem Druck auf die TAB Taste verlassen
moechte. Das geht zwar (siehe Code), aber leider ist das TAB Zeichen noch enthalten.txtBeschreibung = new JTextArea(3,20); txtBeschreibung.setLineWrap(true); //automatischer Zeilenumbruch am Zeilenende txtBeschreibung.setBounds(110,90,200,75); txtBeschreibung.setBorder(BorderFactory.createEtchedBorder()); txtBeschreibung.setFont(fontTxtFields); txtBeschreibung.addKeyListener(new KeyListener() { public void keyTyped(KeyEvent ke) { // TODO Automatisch erstellter Methoden-Stub } public void keyPressed(KeyEvent ke) { // TODO Automatisch erstellter Methoden-Stub if( ke.getKeyCode() == KeyEvent.VK_TAB ) //hier noch das letzte eingegebene Zeichen TAB //aus der text area loeschen cmbEreigniss.requestFocus(); } public void keyReleased(KeyEvent ke) { // TODO Automatisch erstellter Methoden-Stub } });
Habe es auch schon mit folgenden Zeilen versucht, leider immer mit dem selben Ergebniss.
Das TabZeichen ist, nachdem ich diese wieder anklicke, immer noch in der JTextArea enthalten.public void keyPressed(KeyEvent ke) { // TODO Automatisch erstellter Methoden-Stub if( ke.getKeyCode() == KeyEvent.VK_TAB ) //hier noch das letzte eingegebene Zeichen TAB //aus der text area loeschen cmbEreigniss.requestFocus(); txtBeschreibung.setText(txtBeschreibung.getText().trim()); }
Bzw.
public void keyPressed(KeyEvent ke) { // TODO Automatisch erstellter Methoden-Stub if( ke.getKeyCode() == KeyEvent.VK_TAB ) //hier noch das letzte eingegebene Zeichen TAB //aus der text area loeschen cmbEreigniss.requestFocus(); txtBeschreibung.setText(txtBeschreibung.getText().replace("\t","")); }
Hat jemand eine Idee wie ich dieses TabZeichen aus dem String herrausbekomme.
Bin fuer jeden Vorschlag offen.
Danke!
-
Hi,
naja, du könntest halt sowas machen wie
String text=txtBeschreibung.getText(); txtBeschreibung.setText(text.substring(0, text.getLength()-2));
Du könntest auch einen eigenes Document basteln, das die Eingabe von \t nicht zulässt.
-
So,
erstmal danke fuer die Antwort (hat mich dazu gebracht die ganze sache noch einmal
etwas zu ueberdenken)Also ich habe es jetzt so geloest:
public void keyReleased(KeyEvent ke) { if(ke.getKeyCode() == KeyEvent.VK_TAB){ txtBeschreibung.setText(txtBeschreibung.getText().trim()); cmbEreigniss.requestFocus(); }
Ich habe es in die Methode keyReleased gebracht weil erst an dieser Stelle das TAB Zeichen
in der JTextArea vorhanden war. Vorher wollte ich es schon beim druecken der Taste entfernen.jetzt funzt es so wie ich es haben will.
-
Hi,
aber Trim beseitigt u.a. auch Leerzeichen soviel ich weiß. Wenn das eh egal ist, dann passts ja