elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 23:44  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Recuperar la ultima linea en un JtextArea
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recuperar la ultima linea en un JtextArea  (Leído 1,820 veces)
deltacompu

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Recuperar la ultima linea en un JtextArea
« en: 14 Diciembre 2010, 02:31 »

Hola a todos!!!!

En este momento me encuentro realizando una aplicacion muy basica pero me ha dado algunos dolores de cabeza, basicamente estoy haciendo una conversacion cliente-servidor, ya hice la implentacion por consola y funciona, ahora la estoy implementando en una GUI (Interfaz Grafica), construi dos ventanas, una para el servidor y otra para el cliente, en cada una dos JTextArea las cuales estan contenidas en un JScroll, la conexion se realiza de manera adecuada, cuando el cliente envia la primera linea al sevidor estas es recibida y mostrada por el servidor en la correspondiente caja de texto pero cuando el cliente envia la segunda linea, el servidor recibe las lineas anteriores y la ultima, en otras palabras cada vez que el usuario oprima la tecla enter (este es el evento para enviar al servidor o viceversa) el metodo toma todo el texto contenido en la caja de texto incluyendo el que ya ha sido enviado y lo envia al server aqui dejo  mi codigo, si alguien pudiese ayudarme seria muy valioso, muchas gracias.

TextClient.addKeyListener(new KeyAdapter() {
         public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == e.VK_ENTER) {
               String cadena= TextClient.getText();
               if (!cadena.equals("STOP"))
               {
               
                   output.println(TextClient.getText());
 
               }
               else
               {
                  try {
                     socket.close();
                  }
                  catch (IOException e1) {
                     e1.printStackTrace();
                  }
               }
               
               
               
               
            }
         }
      });


En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: Recuperar la ultima linea en un JtextArea
« Respuesta #1 en: 14 Diciembre 2010, 04:20 »

Hola.
Lo bueno que aun tengo guardado códigos en el baul de los recuerdos de Java  :xD.

Código
package foro;
/*
* Autor: Darhius
* */

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.Element;
 
public class GetLastLine extends JFrame {
 
   private JButton button;
   private JPanel panel;
   private JScrollPane scrollPane;
   private JScrollPane scrollPane2;
   private JTextArea textArea;
   private JTextArea textArea2;
 
   /**
*
*/

private static final long serialVersionUID = 1L;
/** Creates new form GetLastLine */
 
   public static void main(String args[]) {
    GetLastLine gll = new GetLastLine();
    gll.setLocationRelativeTo(null);
    gll.setVisible(true);
   }
 
   public GetLastLine() {
       initComponents();
   }
 
   private void initComponents() {
 
       panel = new JPanel();
       scrollPane = new JScrollPane();
       textArea = new JTextArea();
       button = new JButton();
       scrollPane2 = new JScrollPane();
       textArea2 = new JTextArea();
 
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
       setTitle("Get Last Line of JTextArea");
       setResizable(false);
       getContentPane().setLayout(new java.awt.FlowLayout());
 
       panel.setPreferredSize(new java.awt.Dimension(300, 230));
       panel.setLayout(null);
 
       textArea.setText("Escribe\nun\ntexto\naqui\npor\nfavor");
       textArea.setColumns(20);
       textArea.setRows(5);
       scrollPane.setViewportView(textArea);
 
       panel.add(scrollPane);
       scrollPane.setBounds(20, 20, 260, 100);
 
       button.setText("Get Text");
       button.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent evt) {
               try {
getText();
} catch (BadLocationException e) {
e.printStackTrace();
}
           }
       });
       panel.add(button);
       button.setBounds(20, 130, 100, 20);
 
       textArea2.setColumns(20);
       textArea2.setRows(5);
       scrollPane2.setViewportView(textArea2);
 
       panel.add(scrollPane2);
       scrollPane2.setBounds(20, 160, 260, 50);
 
       getContentPane().add(panel);
 
       pack();
   }
 
   private void getText() throws BadLocationException {
       Document document = textArea.getDocument();
       Element rootElem = document.getDefaultRootElement();
       int numLines = rootElem.getElementCount();
       Element lineElem = rootElem.getElement(numLines - 1);
       int lineStart = lineElem.getStartOffset();
       int lineEnd = lineElem.getEndOffset();
       String lineText = document.getText(lineStart, lineEnd - lineStart);
       textArea2.setText(lineText);
   }
 
}
 
 

Espero que te sirva.

Un saludo.


En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
deltacompu

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Recuperar la ultima linea en un JtextArea
« Respuesta #2 en: 14 Diciembre 2010, 13:13 »

Que bueno es tener un baul de los recuerdos, el codigo funciona muy bien....

Muchas gracias por tu ayuda

 ;-) ;-)
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como eliminar una linea de un JTextArea ?
Java
kinos 5 3,271 Último mensaje 3 Noviembre 2009, 17:38
por -Ramc-
[SOLUCIONADO]Autosalto de línea JTextArea y evitar división de palabra
Java
dPix 3 3,469 Último mensaje 22 Agosto 2010, 02:44
por dPix
Lectura última línea
Programación C/C++
javahat 2 1,156 Último mensaje 30 Septiembre 2010, 11:54
por Littlehorse
JTextArea Número de línea e Ir a línea específica
Java
Leo Gutiérrez. 13 4,244 Último mensaje 25 Octubre 2010, 18:35
por Darhius
vbscript: sustituir última linea escrita en stdout.
Scripting
BlaineMonkey 3 1,368 Último mensaje 6 Septiembre 2011, 10:48
por nosoqui
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines