Problema de KeyEvent en JTextArea

Soy nuevo en la programación de GUI. Mientras practico el KeyEventmanejo en Java Swing JTextareame enfrento a un problema. La interfaz de escucha se implementa mediante el área de texto en sí.

Cuando presioné la VK_ENTERtecla en el área de texto, recibo texto del área de texto y luego lo visualicé JTextPane. Después de eso configuré el texto como una cadena vacía en el área de texto. Aquí utilicé el keyPressedevento clave: está creando una nueva línea en el área de texto pero ya configuré la fila del área de texto como 0 (cero).

En realidad, quiero una fila en el área de texto. No quiero dos líneas en el área de texto. ¿Cómo resolver este problema?

Este es mi código:

public void keyPressed(KeyEvent evt) {

   try {
       if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
           if (evt.isShiftDown()) {  
              textArea .setText(textArea.getText() + "\n");
           } else {   
                inputMsg = textArea.getText().trim();
                textArea.setText(EMPTYSTRING);
                if (!inputMsg.equals(EMPTYSTRING)) {   
                   textPane.setText(inputMsg);
                }
                textArea.requestFocus();
              }
          }
     } catch (Exception ex) {
         logger.log(Level.SEVERE, "Exception in textArea.keyReleased() : ", ex);
     }
}
Respuesta 1

De hecho, quiero una fila en textarea No quiero dos líneas en textarea, ¿Cómo resolver este problema?

entonces, ¿por qué estás usando textarea ?, usa JTextField

EDITAR después de los comentarios del autor de la pregunta:

La nueva línea adicional llega a medida que proporciona su lógica en el keyPressedmétodo. Cuando suelta la tecla, ENTER hace efecto en el área de texto (agregando una nueva línea para ENTER).

Puede probar su lógica en el public void keyReleased(java.awt.event.KeyEvent evt)método y debería funcionar.

Otra forma podría ser consumir el evento publicado en evento presionado después de su lógica, pero no estoy seguro de cómo.

Respuesta: 2

En struts-config.xml <form-bean name = "myForm" type = "com.validator.CustomeDynaValidatorForm"> <form-property name = "testId" type = "java.lang.Long" /> </ form-bean > En validación ....

Sabía que los filtros se usan para manejar la solicitud y pueden hacer cosas con el encabezado http y los métodos http, pero estoy confundido con ¿Cuál es la diferencia entre clientrequestfilter y containerrequestfilter? ...

Encuentro un ejemplo simple: HBase + Spring. Leí algunos documentos y artículos sobre la configuración de hbase. Configuré el servidor HBase y ahora quiero crear el cliente. Sé lo que Spring proporciona HbaseTemplate ...

Estaba desarrollando una aplicación. Tuve que modificar mi eclipse.ini, así que quería saber el propósito y el significado de estos parámetros XXMaxPermSize, vmargs, Xms y Xms, para poder usarlos correctamente. Estoy usando ...