Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Lenguajes orientados a objeto > Java > Nuevo en Java > New 2 Java: Construir una Aplicación: 2.- Herencia, Paneles y Distribución
-Tutoriales

New 2 Java: Construir una Aplicación: 2.- Herencia, Paneles y Distribución


Formatear Áreas de Texto

. Formatear Áreas de Texto

Como en el área de texto se muestra un gran bloque de texto, se necesita algún formateo. Los strings largos necesitan partirse en partes más pequeñas que puedan unirse en una, y los parráfos requieren nuevas líneas entre ellos. Además, podríamos querer que el texto apareciera en una fuente o estilo específico. Para estos tipos de formateos, el lenguaje Java usa:

  • Concatenación de Strings
  • Secuencias de Caracteres
  • Métodos Predefinidos

. Concatenación de Strings

La unión de uno o más objetos String se llama una concatenación strings. Para unir los strings para formar un objeto String, usamos el operador +. Los strings siempre van encerrados entre comillas " ". La primera comilla le dice al compilador que ha alcanzado el principio de un objeto String, y la siguiente comilla le dice que ha alcanzado el final de ese String.

El operador + le dice al compilador que almacene el siguiente objeto con el primer objeto y asigna el objeto concatenado a la variable del lado izquierdo del operador de asignación =:

firstString = "Java Programming";
secondString =  " is a lot of fun";
combineString = firstString + secondString;

Resulta en Java Programming is a lot of fun asignado a combineString. Obtenemos el mismo resultado con lo siguiente:

singleString =  
    "Java Programming" + " is a lot of fun.";

y también con:

singleString = "Java Programming" +
     " is a lot of fun.";

Observa que cada pareja de comillas está en una sóla línea. No importa si el operador de concatenación está en la primera o en la segunda línea, o si las parejas de comillas están en un a línea juntas. Si la pareja de comillas se rompe y la primera está en una línea y la segunda comilla en la siguiente, obtendremos un error de compilación como este:

unclosed string literal
println("Java Programming is

. Secuencias de Caracteres

La concatenación de strings resuelve el problema de los strings largos que necesitamos romper, pero no crea espacios entre párrafos. Para crear una nueva línea en el texto necesitamos usar una secuencia de escape.

El caracter de barra invertida (\) es un caracter de escape que indica al compilador que queremos un caracter especial. Podemos escapar caracteres que queremos mostrar, como las comillas o < >. Además, la barra invertida, en combinación con ciertos caracteres, resulta en la inserción de un tabulador, un retorno de carro o una nueva línea.

Para crear un espacio de párrafo, usamos \n para insertar un caracter de nueva línea. Ahora podemos llenar el objeto JTextArea con el texto que queremos mostrar:

longString = new JTextArea("This shows you how to display" +
   " long strings by concatenating them." +
   " Enclose each string in quotes and" +
   " concatenate each line with the + operator.");

Cambia el texto para que corresponda con las necesidades de tu aplicación o usa el texto proporcionado.

Sigue estos pasos...
  1. Abre el fichero Welcome.java en tu editor de texto.
  2. Añade lo siguiente para crear el área de texto con el texto y asignarlo a la variable ta:
    ta = new JTextArea("This application uses a" +
       " typical Graphical User Interface (GUI)," +
       " featuring AWT layout managers and Project" +
       " Swing components, such as buttons, borders," +
       " text areas, menus, and more." +
       " \n\nIn addition, the dive log's functionality" +
       " uses AWT event handlers, methods to manipulate" +
       " data, Java I/O to save user input to files," +
       " and special classes to include HTML pages with" +
       " live links.");
    
  3. Graba el fichero.

Observa que cada línea tiene un string encerrado entre comillas, seguido por el operador de concatenación para unir los strings. La secuencia de escape \n crea una nueva línea, y \n\n crea dos nuevas líneas para dar espacio extra entre párrafos.

. Métodos

La clase JTextArea tiene métodos para manejar varios problemas de formateo:

  • setFont(Font f)
    Selecciona la fuente, el estilo o el tamño de la fuente actual.
  • setLineWrap(boolean wrap)
    Si se selecciona a true, las líneas se parten si son demasiado largas para entrar en la anchura adecuada. Si se selecciona a false, las líneas no son partidas.
  • setWrapStyleWord(boolean word)
    Si se selecciona a true las líneas se partirán en un límite de palabra como un espacio en blanco. Si selecciona a false, las líneas se partirán en caracteres.

Hay muchos más métodos en la clase JTextArea, pero los mostrados arriba son usados en la clase Welcome. Además, JTextArea hereda métodos de la clase JTextComponent. Un método específicamente usado en la clase Welcome:

  • setEditable(boolean b)
    Hace el componente de texto editable o no.

La clase JTextComponent también tiene muchos métodos disponibles para usar el JTextArea como una caja de entrada para los usuarios. Estas características se mostrarán en otras clases de la aplicación Dive Log. Además, JTextArea tiene otro constructor, que nos permite especificar un tamaño específico, y que también veremos más adelante en este tutorial.

En el siguiente ejercicio de programación, especificamos una fuente, un estilo y un tamaño para el área de texto, seleccionamos la ruptura de líneas a true, y el estilo de ruptura a los límites de palabra, impidiendo que los usuarios lo editen poniendo setEditable a false.

Sigue estos pasos...
  1. Abre el fichero Welcome.java en tu editor de texto.
  2. Añade los siguientes métodos inmediantamente después de la inicialización del área de texto:
     ta.setFont(new Font("SansSerif", Font.PLAIN, 14));
     ta.setLineWrap(true);
     ta.setWrapStyleWord(true);
     ta.setEditable(false);
    
  3. Graba el fichero.

El método setFont es llamado sobre el objeto ta usando el operador punto. Proporcionamos los argumentos del método inicializando la clase Font con la palabra clave new.

El constructor de la clase Font necesita los siguientes argumentos:

  • Un nombre de fuente como un String
  • El el campo Style de la clase font con el operador punto.
  • El tamaño en puntos.

Los tres métodos setLineWrap, setWrapStyleWord, setEditable requieren una palabra clave booleana, lo que significa que se seleccionan a true o false. Seleccionar setLineWrap y setWrapStyleWord a true fuerza al objeto ta a partir la líneas por el tamaño del área de ventana, y hace que las rupturas sean en los espacios en blanco entre palabras. El argumento false para el método setEditable hace el área de texto de sólo lectura y no permite ninguna característica de edición.

. Decorar con bordes

Los bordes decorativos son estéticametne bonitos y permiten a los desarrolladores añadir un tópico a una sección, un objeto título. Además ayudan al usuario a definir áreas especificas de la pantalla, o seccionar la pantalla en áreas lógicas.

Podemos crear distintos tipos de bordes con métodos de la clase BorderFactory. Primero, llamamos al método setBorder de la clase JComponent.

Sigue estos pasos...
  1. Abre el fichero Welcome.java en tu editor de texto.
  2. Llama a setBorder sobre el objeto en el que queremos tener un borde.
  3. Llama a la clase BorderFactory y el método createTitledBorder con el operador punto:
    ta.setBorder(BorderFactory.createTitledBorder
    
  4. Proporciona el String que quieras que aparezca como título en el método createTitleBorder:
    ("This is a Title"));
    
    La llamada a método se debería parecer a esta:
    ta.setBorder(BorderFactory.createTitledBorder(
      " Welcome to the Java Technology Dive Log "));
    
  5. Graba el fichero.

El nombre de la variable ta identifica el objeto que necesita un borde. El setBorder(Border border) toma a la clase BorderFactory como un argumento, llamando a su método createTitledBorder con el operador punto, y proporciona el String a mostrar con el borde.

Pueba otros bordes, chequeando para ver los arguemntos que requieren en la documentación de la clase BorderFactory

Para añadir la última imagen al panel Welcome:

Sigue estos pasos...
  1. Abre el fichero Welcome.java en tu editor de texto.
  2. Inicializa un JLabel con new.
  3. Incluye un String vacio (no aparecerá texto con esta imagen).
  4. Inicializa un ejemplar de la clase ImageIcon.
  5. En la inicialiación de la clase ImageIcon, incluye:
    • Un String para el nombre y el path de la imagen.
    • Un campo JLabel para la posición diseñada.
    • Añade el siguiente código a tu fichero, justo después de los métodos llamados sobre ta:
      diver = new JLabel("", 
         new ImageIcon("images/diver.jpg"), 
          JLabel.CENTER);
      
  6. Graba el fichero.
Nota:
Puedes escribir el último paso en una sóla línea. Aquí lo hemos dividido por problemas de impresión, pero aun así compila perfectamente si lo copias y lo pegas en tu clase por que las parejas de comillas no se han dividido.

Hasta ahora hemos:

  • Declarado tres variables.
  • Inicializado y asignado los objetos a cada una de esas variables en el constructor.
  • Enviado llamadas a métodos sobre esos objetos para manipularlos usando el operador punto.

El último paso para completar este panel es añadir los objetos cada uno a una región de la distribución. Esto nos lleva de vuelta al controlador de distribución BorderLayout.

Las constantes son fáciles de identificar en el código porque están escritas
   A   En letras mayúsculas como PI
   B  Con la inicial en mayúsuclas como LoanAmount
   C  Con la primera palara en minúscula y la segunda en mayúscula como redBackground
 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network