2017-08-20 2 views
-1

Je crée un programme de traitement de texte, et je veux que l'utilisateur appuie sur 'a' ('a' est juste pour la démonstration, j'ai une liste de caractères spéciaux comme ça), il va remplacer certains caractères du signe d'insertion à gauche par une chaîne. J'ai essayé la méthode "setText" mais elle a remplacé puis déplacé le curseur et le composant texte a défilé jusqu'à la fin, ce que je veux, c'est que le curseur ne bouge pas ailleurs et que le composant texte ne défile pas jusqu'à la fin, puis-je coder pour le faire (je surcharge le processKeyEvent)?JTextArea, JTextField, comment remplacer le texte du signe d'insertion à gauche par une autre chaîne

Toute aide serait appréciée.

Répondre

0

Essayez d'utiliser le filtre de document:

JTextArea textArea = new JTextArea(); 

    ((AbstractDocument) textArea.getDocument()).setDocumentFilter(new DocumentFilter() {    
     @Override 
     public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) 
       throws BadLocationException { 

      if ("a".equals(text)) { 
       text = "B"; 
      }    

      super.replace(fb, offset, length, text, attrs); 
     } 
    }); 
+0

Merci beaucoup, je l'ai eu. – StephenKhoa