Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Buscar en TextArea y resaltar la referencia

  • 0 Respuestas
  • 1319 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Adalher

  • *
  • Underc0der
  • Mensajes: 37
  • Actividad:
    1.67%
  • Reputación 0
    • Ver Perfil
« en: Abril 11, 2019, 05:10:01 pm »
Hola a todos,

en el caso en el que alguien quiera buscar con gusto algo en un JTextArea:

El TextArea necesita un KeyListener:
Código: Java
  1. jTextArea1.addKeyListener(new java.awt.event.KeyListener() {
  2.  
  3.             @Override
  4.             public void keyTyped(KeyEvent e) {
  5.                
  6.             }
  7.  
  8.             @Override
  9.             public void keyPressed(KeyEvent e) {
  10.              
  11.              }
  12.  
  13.             @Override
  14.             public void keyReleased(KeyEvent e) {
  15.                 if (e.getKeyCode() == 114) {
  16.                     seguirbuscando();
  17.                 }
  18.             }
  19.         });
  20.  

En este caso, "palabraclave" es una variable global.
Como alternativa, en lugar de eso, se podría aplicar:
Código: Java
  1. private void seguirbuscando(String palabraclave) {
  2.  
  3. }
  4.  

y en el KeyEvent
Código: Java
  1. if (e.getKeyCode() == 114) {
  2.                     seguirbuscando(palabraclave);
  3.                 }
  4.  
incorporar la palabra clave en la llamada del metodo


El metodo seguirbuscando() como sigue:
Código: Java
  1.         private void seguirbuscando() {
  2.         int posicioncursor = jTextArea1.getCaretPosition();
  3.         if (posicioncursor == jTextArea1.getText().length()) {
  4.             posicioncursor = 0 -palabraclave.length();
  5.         }
  6.         posicioncursor = posicioncursor + CursorNext(palabraclave);
  7.         jTextArea1.setCaretPosition(posicioncursor);
  8.  
  9.         jTextArea1.select(posicioncursor, posicioncursor + palabraclave.length());
  10.     }
  11.  

Y para llegar a la siguiente referencia esta definido el metodo CursorNext():
Código: Java
  1.         private int CursorNext(String busqueda) {
  2.         String b;
  3.         try {
  4.             b = jTextArea1.getText().toLowerCase().substring(jTextArea1.getCaretPosition() + busqueda.length());
  5.         } catch (Exception e) {
  6.             b = jTextArea1.getText().toLowerCase();
  7.             jTextArea1.setCaretPosition(0);
  8.         }
  9.         int posicioncursor = (busqueda + b.split(busqueda.toLowerCase())[0]).length();
  10.         return posicioncursor;
  11.  
  12.     }
  13.  

El KeyEvent con getKeyCode() 114 representa al boton F3


Saludos

 

¿Te gustó el post? COMPARTILO!