AreaTexto_2.java_



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);
		}
	}
}