Como se puede imaginar por el nombre, JTextArea es un componente que crea un área de texto; este componente pertenece al paquete java.lang.Object y tiene algunas propiedades que debemos conocer:
La primera es que su tamaño es el justo para el texto que lleva dentro. Es decir, inicialmente, su tamaño es de una fila de letras de alto y cero pixeles de ancho, ya que no tiene texto. Según vamos escribiendo, va cambiando de tamaño. No es buena idea dejarlo así, ya que nos pueden pasar cosas raras. En el constructor del JTextArea podemos decirle cuántas filas queremos que tenga y cuántas columnas. En el ejemplo vamos a poner 10 filas y 50 columnas, pero también se puede agregar algún texto en nuestros JTextArea, como se verá a continuación:
JTextArea jtx = new JTextArea(); //sin parámetros
JTextArea jtx = new JTextArea(10,50); //número de filas y columnas
JTextArea jtx = new JTextArea( "Texto dentro de JTextArea" ); //cadena de texto
JScrollPane scroll = new JScrollPane();scroll.setViewportView(jtx);
// Para que haga el salto de línea en cualquier parte de la palabra:
jtx.setLineWrap(true);
// Para que haga el salto de línea buscando espacios entre las palabras
jtx.setWrapStyleWord(true);
Con todo esto, la forma de crear el JTextArea y añadirlo al JFrame será así:
import javax.swing.*;
import java.awt.*;
public class VentanaEjemplo1{
public static void main(String[] args) {
JFrame ventana = new JFrame("Mi Ventana");
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextArea jtx = new JTextArea(10,50);
jtx.setLineWrap(true);
jtx.setWrapStyleWord(true);
JScrollPane scroll = new JScrollPane(jtx);
ventana.getContentPane().add(scroll, BorderLayout.CENTER);
ventana.add(scroll);
ventana.pack();//método utilizado para que se muestren los //elementos de la ventana
ventana.setVisible(true);
}
}
Font font = new Font("Verdana", Font.ITALIC, 12);
jtx.setFont(font);
Normal=PLAIN
Cursiva=ITALIC
Negrita=BOLD
jtx.setForeground(Color.white);
jtx.setBackground(Color.black);
1. BLACK
2. BLUE
3. CYAN
4. DARK_GRAY
5. GRAY
6. GREEN
7. LIGHT_GRAY
8. MAGENTA
9. ORANGE
10. PINK
11. RED
12. WHITE
13. YELLOW
jtx.setForeground(new Color(int R,int G,int B));
jtx.setBackground(new Color(int R,int G,int B));
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class JTextAreaTest{
public static void main (String [] args) {
//Método para cambiar la decoración de la ventana en sí,
//si ponemos el valor en falso la ventana se verá de la forma predeterminada de Windows
JFrame.setDefaultLookAndFeelDecorated(true);
//creamos el JFrame principal donde agregaremos el resto de objetos
JFrame frame = new JFrame ("JTextArea Test");
frame.setLayout (new FlowLayout ());
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
String text = "Un objeto JTextArea es una área multilínea para escribir texto. "
+ "Se puede cambiar el número de líneas que se mostrarán, "
+ "y también el numero de columnas. Puedes cambiar las fuentes y tamaños de letras. "
+ "Y puedes agregar tu TextArea en un JScrollPane para poder mover las zonas de texto." ;
//creamos un area de texto normal no redimensionable
JTextArea textAreal = new JTextArea(text,20,10);
textAreal.setPreferredSize(new Dimension (10,100));
//creamos otra área de texto con un JScrollPane, sólo es agregado
JTextArea textArea2 = new JTextArea(text,20,10);
JScrollPane scroll = new JScrollPane(textArea2);
frame.getContentPane().add(scroll, BorderLayout.CENTER);
frame.add(scroll);
//El método setLineWrap lo que hace es ordenar las palabras para que no se salgan de los márgenes,
//si lo desactivamos(false), el texto se escribirá hacia el lado(en una línea) y no se vería todo si el //texto es muy largo
textAreal.setLineWrap (true);
textArea2.setLineWrap (true);
textAreal.setWrapStyleWord(true);
textArea2.setWrapStyleWord(true);
//agregamos los area de texto al frame principal,
//nota: el textArea2 está dentro de un JScrollPane, por eso éste es el que agregamos al frame
frame.add(textAreal);
frame.add(scroll);
//el metodo pack sirve para dejar todo dentro del frame
frame.pack();
//y finalmente el metodo setVisible es para que se visualice la ventana
frame.setVisible(true) ;
}
}
Ejercicios:
-Crear una ventana simple que al ingresar texto lo organice de forma automática, realizando los saltos de líneas en cualquier parte de una frase, con fondo y tipo de letra a su elección.
-Crear una ventana con tres JTextArea: el primero que no realice saltos de líneas, con letra simple, el segundo debe tener Scrollbar, realizar los saltos de líneas en cualquier parte de la frase a escribir, con fondo amarillo y letra cursiva color negro, por ultimo el tercer cuadro debe tener Scrollbar con saltos de líneas buscando espacios, fondo color negro y letras blancas “en negrita”.
15 comentarios:
Muy buen tutorial amigo, solo tengo una consulta.... Como podria hacer para que automaticamente me cambie de color ciertas palabra
Excelelnte material sirve mucho de ayuda muchas gracias
Hola, buen aporte. Te hago una consulta, quiero que un jtextarea se agrande o ajuste su tamaño, dependiendo del como se agrande la ventana en tiempo de ejecucion. Espero me puedas ayudar. Desde ya muchas gracias. Saludos
excelenete!!
Alguien sabe si hago una consulta a mysql como mostrar el resultado en un jtextarea pero todo tal como se muestra en la consola de mysql?
Graciaaassssss me ha servido descomunalmente!!!! (Y)
buenas necesito ayuda.!
estoy creando un compilador y necesito que en mi JtextArea se muestre el numero de linea por el que voy o en la que me encuentro. como un compilador normal para asi hacerle ver al usuario en que linea se encuentra el error
de ante mano muchas gracias.!
Buenas necesito ayuda!! me pidieron crear un panel o ventana donde tengo que crear un rectángulo y que dicho rectángulo cambie de color cada 5 segundos!! gracias de ante mano
alguien puede ayudar. sobre como pasar los datos que hay en un jtextarea a un arreglo
alguien puede ayudar. sobre como pasar los datos que hay en un jtextarea a un arreglo
gracias
gracias
se puede poner um boton de modificar en JtextArea
AMIGo ayuda , no me funcion el metodo que cree:
public void setTxta() {
txta.setText("como va la cosa");// it does not work.
lo invoco de otra clase y si resulta pero no me modifica el texto del jtextarea
Publicar un comentario