elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  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 6,803 veces)
deltacompu

Desconectado Desconectado

Mensajes: 3


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

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

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


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

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

Código
  1. package foro;
  2. /*
  3.  * Autor: 1mpuls0
  4.  * */
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.JButton;
  9. import javax.swing.JFrame;
  10. import javax.swing.JPanel;
  11. import javax.swing.JScrollPane;
  12. import javax.swing.JTextArea;
  13. import javax.swing.WindowConstants;
  14. import javax.swing.text.BadLocationException;
  15. import javax.swing.text.Document;
  16. import javax.swing.text.Element;
  17.  
  18. public class GetLastLine extends JFrame {
  19.  
  20.    private JButton button;
  21.    private JPanel panel;
  22.    private JScrollPane scrollPane;
  23.    private JScrollPane scrollPane2;
  24.    private JTextArea textArea;
  25.    private JTextArea textArea2;
  26.  
  27.    /**
  28. *
  29. */
  30. private static final long serialVersionUID = 1L;
  31. /** Creates new form GetLastLine */
  32.  
  33.    public static void main(String args[]) {
  34.     GetLastLine gll = new GetLastLine();
  35.     gll.setLocationRelativeTo(null);
  36.     gll.setVisible(true);
  37.    }
  38.  
  39.    public GetLastLine() {
  40.        initComponents();
  41.    }
  42.  
  43.    private void initComponents() {
  44.  
  45.        panel = new JPanel();
  46.        scrollPane = new JScrollPane();
  47.        textArea = new JTextArea();
  48.        button = new JButton();
  49.        scrollPane2 = new JScrollPane();
  50.        textArea2 = new JTextArea();
  51.  
  52.        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  53.        setTitle("Get Last Line of JTextArea");
  54.        setResizable(false);
  55.        getContentPane().setLayout(new java.awt.FlowLayout());
  56.  
  57.        panel.setPreferredSize(new java.awt.Dimension(300, 230));
  58.        panel.setLayout(null);
  59.  
  60.        textArea.setText("Escribe\nun\ntexto\naqui\npor\nfavor");
  61.        textArea.setColumns(20);
  62.        textArea.setRows(5);
  63.        scrollPane.setViewportView(textArea);
  64.  
  65.        panel.add(scrollPane);
  66.        scrollPane.setBounds(20, 20, 260, 100);
  67.  
  68.        button.setText("Get Text");
  69.        button.addActionListener(new ActionListener() {
  70.            public void actionPerformed(ActionEvent evt) {
  71.                try {
  72. getText();
  73. } catch (BadLocationException e) {
  74. e.printStackTrace();
  75. }
  76.            }
  77.        });
  78.        panel.add(button);
  79.        button.setBounds(20, 130, 100, 20);
  80.  
  81.        textArea2.setColumns(20);
  82.        textArea2.setRows(5);
  83.        scrollPane2.setViewportView(textArea2);
  84.  
  85.        panel.add(scrollPane2);
  86.        scrollPane2.setBounds(20, 160, 260, 50);
  87.  
  88.        getContentPane().add(panel);
  89.  
  90.        pack();
  91.    }
  92.  
  93.    private void getText() throws BadLocationException {
  94.        Document document = textArea.getDocument();
  95.        Element rootElem = document.getDefaultRootElement();
  96.        int numLines = rootElem.getElementCount();
  97.        Element lineElem = rootElem.getElement(numLines - 1);
  98.        int lineStart = lineElem.getStartOffset();
  99.        int lineEnd = lineElem.getEndOffset();
  100.        String lineText = document.getText(lineStart, lineEnd - lineStart);
  101.        textArea2.setText(lineText);
  102.    }
  103.  
  104. }
  105.  
  106.  

Espero que te sirva.

Un saludo.


« Última modificación: 3 Septiembre 2015, 18:47 pm por 1mpuls0 » En línea

abc
deltacompu

Desconectado Desconectado

Mensajes: 3


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

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 10,687 Último mensaje 3 Noviembre 2009, 17:38 pm
por -Ramc-
como buscar una palabra en la ultima linea de un txt con un bat
Scripting
patorejo 5 6,955 Último mensaje 13 Agosto 2010, 21:52 pm
por flony
[SOLUCIONADO]Autosalto de línea JTextArea y evitar división de palabra
Java
dPix 3 17,708 Último mensaje 22 Agosto 2010, 02:44 am
por dPix
Lectura última línea
Programación C/C++
javahat 2 3,217 Último mensaje 30 Septiembre 2010, 11:54 am
por Littlehorse
JTextArea Número de línea e Ir a línea específica « 1 2 »
Java
leogtz 13 25,461 Último mensaje 25 Octubre 2010, 18:35 pm
por 1mpuls0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines