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