2 votes

Suppression de la fonction nouvelle ligne lorsque le bouton Entrée est pressé Java

J'ai un champ de texte que je voudrais voir devenir vide lorsque le bouton Entrée est pressé. Je sais que cela se ferait normalement avec une méthode setText. Cependant, lorsque je le fais, le texte est supprimé mais la fonction de saut de ligne créée par l'appui sur la touche retour. Ma question est, y a-t-il un moyen d'empêcher cette action par défaut de se produire?

merci

-1voto

Nicola Points 1

J'ai résolu votre problème en remplaçant le code dans la méthode "public void keyTyped(KeyEvent e)" au lieu de "public void keyPressed(KeyEvent e)" et cela fonctionne. Voici le code :

package versione1;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class WhiteEnter {
    final JFrame frame = new JFrame();
    private JTextArea area = new JTextArea();

    public static void main(String[]args) {

        WhiteEnter prova = new WhiteEnter();
        prova.run();
    }

    public void run(){
        area.setPreferredSize(new Dimension(200, 200));
        area.addKeyListener(new PressEnterKeyListener());

        frame.add(area);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

    public class PressEnterKeyListener implements KeyListener{

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {

            if (e.getKeyChar() == (KeyEvent.VK_ENTER)){
                try{
                    area.setText(null);
                    area.setCaretPosition(0);
                } catch(Exception ex){
                    ex.printStackTrace();
                }
            }
        }
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X