2011-12-02 19 views
5

Sto tentando di rimuovere tutto il testo da un JTextPane. Ho pensato che si potrebbe usare semplicemente:JTextPane clear text

textPane.setText(""); 

Questo funziona, ma per qualche ragione, c'è sempre una riga vuota dopo aver chiamato questo metodo. Perché è questo e come lo evito?

+0

Ho appena impostato un test case e impostato il riquadro su "" e null e sembra che tutto si sia risolto correttamente. Ti stai riferendo alla linea che lascia in modo che tu possa effettivamente inserire qualcosa? – pimaster

risposta

7

Probabilmente perché si sta utilizzando un KeyListener per ascoltare il tasto Invio e quindi cancellare il testo. Bene, JTextPane ha un'azione che aggiunge un carattere di nuova riga quando viene premuto il tasto Invio e ciò accade dopo aver cancellato il riquadro di testo.

La soluzione corretta consiste nell'utilizzare associazioni di tasti e sostituire l'azione predefinita con un'azione che cancella il riquadro di testo.

+0

Sto davvero utilizzando un KeyListener per ascoltare la chiave di invio. Daro 'un'occhiata a Key Bindings, grazie. Ma cosa intendi con "sostituisci l'azione predefinita con un'azione che cancella il pannello di testo".? – Bv202