En el constructor (líneas 18 a 48), la línea 21 crea un contenedor 

Box

 (paquete 

javax.swing

) para orga-

nizar los componentes de la GUI. 

Box

 es una subclase de 

Container

 que utiliza un administrador de esquemas 

BoxLayout

 (que veremos con detalle en la sección 22.9) para ordenar los componentes de la GUI, ya sea en 

forma horizontal o vertical. El método 

static

createHorizontalBox

 de 

Box

 crea un objeto 

Box

 que ordena los 

componentes de izquierda a derecha, en el orden en el que se adjuntan.

En las líneas 26 y 43 se crean los objetos 

JTextArea

 llamados 

areaTexto1

 y 

areaTexto2

. La línea 26 utiliza 

el constructor con tres argumentos de 

JTextArea

, el cual recibe un objeto 

String

 que representa el texto inicial 

y dos valores 

int

 que especifi can que el objeto 

JTextArea

 tiene 

10

 fi las y 

15

 columnas. En la línea 43 se utiliza 

el constructor con dos argumentos de 

JTextArea

, el cual especifi ca que el objeto 

JTextArea

 tiene 

10

 fi las y 

15

columnas. En la línea 26 se especifi ca que 

demo

 debe mostrarse como el contenido predeterminado del objeto 

JTextArea

. Un objeto 

JTextArea

 no proporciona barras de desplazamiento si no puede mostrar su contenido 

completo. Por lo tanto, en la línea 27 se crea un objeto 

JScrollPane

, se inicializa con 

areaTexto1

 y se adjunta 

al contenedor 

cuadro

. En un objeto 

JScrollPane

aparecen de manera predeterminada las barras de desplaza-

miento horizontal y vertical, según sea necesario.

En las líneas 29 a 41 se crea el objeto 

JButton

llamado

botonCopiar

 con la etiqueta 

"Copiar>>>"

, se 

agrega 

botonCopiar

 al contenedor 

cuadro

 y se registra el manejador de eventos para el evento 

ActionEvent

de

botonCopiar

. Este botón proporciona el evento externo que determina cuándo debe copiar el programa el 

texto seleccionado en 

areaTexto1

 a 

areaTexto2

. Cuando el usuario hace clic en 

botonCopiar

, la línea 38 en 

actionPerformed

 indica que el método 

getSelectedText

(que hereda 

JTextArea

 de 

JTextComponent

) debe 

devolver el texto seleccionado de 

areaTexto1

. Para seleccionar el texto, el usuario arrastra el ratón sobre el tex-

to deseado para resaltarlo. El método 

setText

 cambia el texto en 

areaTexto2

 por la cadena que devuelve 

get-

SelectedText

.

En las líneas 43 a 45 se crea 

areaTexto2

, se establece su propiedad editable a 

false

 y se agrega al contenedor 

box

. En la línea 47 se agrega 

cuadro

al objeto 

JFrame

. En la sección 11.17 vimos que el esquema predeterminado 

de un objeto 

JFrame

 es 

BorderLayout

, y que el método 

add

 adjunta de manera predeterminada su argumento a 

la región 

CENTER

de este esquema.

Algunas veces es conveniente, cuando el texto llega al lado derecho de un objeto 

JTextArea

, hacer que se 

recorra a la siguiente línea. A esto se le conoce como 

envoltura de línea

. La clase 

JTextArea

 no envuelve líneas 

de manera predeterminada.

Figura 11.48

  |  Copiado de texto seleccionado, de un objeto 

TextAreaFrame

.

 1 

// Fig. 11.48: DemoAreaTexto.java

2

// Copia el texto seleccionado de un área de texto a otra. 

3

import

 javax.swing.JFrame;

 4 
 5 

public class

 DemoAreaTexto

 6 

{

 7  

public static void

 main( String args[] )

 8  

{

 9   

MarcoAreaTexto marcoAreaTexto = 

new

 MarcoAreaTexto(); 

 10  

 

marcoAreaTexto.setDefaultCloseOperation(

JFrame.EXIT_ON_CLOSE

);

 11  

 

marcoAreaTexto.setSize(

425

,

200

 ); 

// establece el tamaño del marco

12   

marcoAreaTexto.setVisible(

true

 ); 

// muestra el marco

13

}

// fin de main

14

}

// fin de la clase DemoAreaTexto

11.19 JTextArea 

525

11_MAQ_CAP_11.indd525

4/19/081:26:24AM