import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.*; // Crea un campo de texto, 2 areas de texto y 2 botones con la etiqueta // un lado a la otra. public class AreaTexto_2 extends Applet { TextField TFNum = new TextField(); TextArea Area1 = new TextArea(); TextArea Area2 = new TextArea(); Button Derecha = new Button("==>"); Button Izquierda = new Button("<=="); // Normalmente la interfaz del usuario public void init() { setLayout(null); // Contenedor add(TFNum); add(Area1); add(Area2); add(Derecha); add(Izquierda); // Añadir al contenedor setBackground(Color.blue); // Posicionamiento de los elementos anteriores TFNum.setBounds(10, 10, 80, 30); Area1.setBounds(10, 80, 200, 300); Area2.setBounds(260, 80, 200, 300); Derecha.setBounds(215, 200, 35, 30); Izquierda.setBounds(215, 240, 35, 30); Derecha.addActionListener(new EVENTOS()) ; Izquierda.addActionListener(new EVENTOS()) ; } class EVENTOS implements ActionListener { public void actionPerformed(ActionEvent e) { String Boton = e.getActionCommand(); if (TFNum.getText().length() != 0) { int Num = Integer.parseInt(TFNum.getText()); if (Boton.compareTo("==>") == 0) { Envia_Lineas(Area1, Area2, Num); Borra_Lineas(Area1, Num); } else { Envia_Lineas(Area2, Area1, Num); Borra_Lineas(Area2, Num); } } else if (Boton.compareTo("==>") == 0) Envia_Todo(Area1, Area2); else Envia_Todo(Area2, Area1); } } void Borra_Lineas(TextArea TA, int Num) { StringTokenizer ST = new StringTokenizer(TA.getText(), "\n"); String Nuevo_Contenido = ""; if (Num < ST.countTokens()) { Num = ST.countTokens() - Num; for (int N = 0; N < Num; N++) Nuevo_Contenido += ST.nextToken() + "\n"; TA.setText(Nuevo_Contenido); } } void Envia_Todo(TextArea TA_Desde, TextArea TA_Hacia) { { String CAD = TA_Hacia.getText() + "\n" + TA_Desde.getText(); TA_Hacia.setText(CAD); TA_Desde.setText(""); } } void Envia_Lineas(TextArea TA_1, TextArea TA_2, int Num) { String CAD_1 = TA_1.getText(); String CAD_2 = TA_2.getText(); String Vector[], Resp= ""; StringTokenizer ST = new StringTokenizer(CAD_1, "\n"); if (Num < ST.countTokens()) { Vector = new String[ST.countTokens()]; for (int k =0; k < Vector.length; k++) Vector[k] = ST.nextToken(); Resp = ""; for (int k =Vector.length-1; k >= 0 ; k--) { if (Num > 0) { Resp = Vector[k] + "\n" + Resp; Num--; } } CAD_2 += "\n" + Resp; TA_2.setText(CAD_2); } else Envia_Todo(TA_1, TA_2); } } }