Inicializar un JTextArea

Enadan
02 de Abril del 2003
Tengo un JTextArea dentro de un JFrame y recibo los datos escritos cuando el usuario pulsa enter, pero el problema es que esta tecla, por defecto, tiene la accion de saltar de linea, y la segunda vez que lo recojo al estar situado el cursor en la segunda linea primero recojo una linea vacia y luego el mensaje.

Alguien sabe si se puede desactivar la accion por defecto de las teclas de funcion?!

Tambien se me ha ocurrido inicializar el JTextArea para que cada vez que se pulse enter situe el cursor como si se acabara de crear, pero le he dado mil vueltas y no consigo encontrar la forma de hacerlo

Un saludo!

Luis
02 de Abril del 2003
Hi Enadan.
Lo mas sencillo para desactiva esa opcion es controlar la entrada de datos, de la tecla enter en este caso en el evento KeyPress, haciendo retroceder al cursor o poniendolo a "" si no existe ningun caracter aun. Si no sabes exactamente como hacerlo lo hago y te mando el trozo del codigo. Un saludo.

Enadan
02 de Abril del 2003
Hola Luis, ya controlo el keyPress, pero no me hace mucho caso:

//=======> Codigo
public void keyPressed(KeyEvent k)
{
if (k.getKeyCode() == k.VK_ENTER)
{
try
{
// Cojo el texto del JTextArea
sTexto = writeZone.getText();

// Manda lo que se ha escrito al servidor
miConexion.sendServer(sTexto);

// Limpio la zona de escritura
writeZone.setText("");

// Mantengo el cursor en esta zona
writeZone.requestFocus();

// Escribe lo que ha dicho el mismo en la readZone
if (!sTexto.equals(""))
{
readZone.append("n" +
"Yo digo: " +
sTexto +
"n");
}
}
//========> Codigo

No se si es eso lo que me decias que hiciera. Asi no me funciona, pero a lo mejor se me esta pasando algo por alto!

Muchas gracias!!!

Un saludo, Enadan

Luis
02 de Abril del 2003
Hi Enadan.
Si lo que intentas es que la primera vez que pulse enter no haga el salto de linea, prueba con este codigo.
public void keyPressed(KeyEvent k) {

if (evt.getKeyCode() == evt.VK_ENTER) {
if(writeZone.getText().trim().equals("")){
// PONERLO EN BLANCO
writeZone.setText("");
return;
}else{
try {
// Cojo el texto del JTextArea
sTexto = writeZone.getText().trim();

// Manda lo que se ha escrito al servidor
miConexion.sendServer(sTexto);

// Mantengo el cursor en esta zona
writeZone.requestFocus();

// Escribe lo que ha dicho el mismo en la readZone
if (!sTexto.equals("")) {
readZone.append("n" +
"Yo digo:" +
sTexto +
"n");
}
}catch(Exception es){
System.out.println("ERROR "+es);
}

}
}
}