HTMLpointHTMLpoint HTMLpoint.com


 El Texto, los sucesos, Dialog



Nos queda por ver un componente fundamental para una interfaz, es decir, el texto.
Los abstract window Toolkit de Java ponen a disposición dos clases para el texto: TextArea y TextField, las dos amplían la clase TextComponent.



En TextComponent encontramos una serie de métodos útiles para la gestión del texto, tanto en TextArea como en TextField, entre ellos:

Color getBackground() e setBackground(Color c), para capturar y verificar el color de Background del texto.
String getSelectedText(), captura el texto seleccionado.
int getSelectionEnd(), da la posición del final de la selección del texto.
Int getSelectionStart(), da la posición del inicio de la selección del texto.
String getText(), da el texto del TextComponent
boolean isEditable(), dice si el texto del componente se puede editar.
void select(int selectionStart, int selectionEnd), selecciona el texto de selectionStart a selectionEnd.
void selectAll(), selecciona todo el texto.
void setEditable(boolean b), verifica si el texto se puede editar o no.
void setSelectionEnd(int selectionEnd), verifica el final de la selección del texto.
void setSelectionStart(int selectionStart), verifica el inicio de la selección.
void setText(String t), verifica el contenido del componente del texto con valor t.

Además en TextComponent se pueden utilizar todos los métodos de Component, es decir:

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAlignmentX, getAlignmentY, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getName, getParent, getPeer, getPreferredSize, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFont, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, update, validate

Ahora, veamos los TextField. Prácticamente un TextField es una única línea de texto que se puede editar, con aspecto gráfico. Es uno de los campos que estamos acostumbrados a ver en las Form que se encuentran en internet para introducir nombres, apellidos, etc.

Hay cuatro posibles constructores:

TextField(), crea un TextField vacío.
TextField(int c), crea un TextField vacío de c columnas, es decir, una línea de c caracteres.
TextField(String t), crea un TextField inicializado con t.
TextField(String t, int c), crea un TextField inicializado con t, de c caracteres.

De los varios métodos, los más interesantes para nuestros fines son:

boolean echoCharIsSet(), dice si el TextField realiza el "echo" de los caracteres introducidos.
int getColumns(), da el número de columnas de los TextField.
char getEchoChar(), da el carácter utilizado para el "echo".
void setColumns(int columns), verifica el número de las columnas de los TextField.
void setEchoChar(char c), verifica el carácter de "echo" para el TextField.
void setText(String t), para verificar el texto introducido.

Para el tamaño:

Dimension getMinimumSize()
Dimensión getMinimumSize(int c)
Dimensión getPreferredSize()
Dimensión getPreferredSize(int c)

La TextArea, en cambio, es un verdadero texto, no sólo una línea, sino muchas. Incluye también las dos barras para navegar en el texto si éste es más grande de la ventana en la que está visualizado.

Los constructores son:

TextArea(), construye una nueva TextArea.
TextArea(int r, int c) , construye una nueva TextArea, de r líneas y c columnas.
TextArea(String text), construye una nueva TextArea inicializada con el texto pasado.
TextArea(String text, int rows, int columns) , construye una nueva TextArea inicializada con el texto pasado, de r líneas y c columnas.
TextArea(String text, int rows, int columns, int scrollbars), como el anterior, sólo que permite especificar la visualización de las barras de texto.

Vamos a ver algunos métodos:

void append(String str), cuelga el texto pasado a la TextArea. (En la viejas versiones de Java es appendText(String str)).
int getColumns(), int getRows() para tener información sobre el número de columnas o líneas.
void insert(String str, int pos), introduce el texto pasado en la posición pasada. (En las viejas versiones de Java es insertText(String str)).
void replaceRange(String str, int start, int end), sustituye el texto de start a end con la cadena pasada.
void setColumns(int columns) e void setRows(int rows) para verificar el número de columnas o de líneas de la TextArea.

Para el tamaño del objeto GUI:

Dimensión getMinimumSize()
Dimensión getMinimumSize(int rows, int columns)
Dimensión getPreferredSize()
Dimensión getPreferredSize(int rows, int columns)


Hemos visto todos los componentes de texto. Llegados a este punto podemos poner un ejemplo que los utiliza las dos.

Creamos un aplique, por lo tanto el launcher es:

<html>
<head>
<title>
Ejemplo de uso de los componentes de texto.
</title>
</head>
<body>
<APPLET code="Texto.class" width=500 height=200>
<param name=testo value="Texto inicial para la TextArea.Introducir más caracteres.">
</APPLET>
</body>
</html>


El código que hay que editar en Texto.java, es el siguiente:

import java.awt.event.KeyListener;

import java.awt.event.KeyEvent;

import java.awt.TextField;

import java.awt.TextArea;

import java.awt.BorderLayout;

import java.applet.*;


public class Texto extends Applet
{

TextField TF=new TextField(20);

TextArea TA=new TextArea();

public void init()
{

add(TA,BorderLayout.CENTER);

add(TF,BorderLayout.SOUTH);

String t=getParameter("texto");

if (t!=null) TA.setText(t);

TF.setEditable(false);

TA.addKeyListener(new MyKeyListener());

}


public class MyKeyListener implements KeyListener
{
public void keyPressed(KeyEvent e)
{

}

public void keyReleased(KeyEvent e)
{

int valor=e.getKeyCode();
if (valor!=10) TF.setText("Introducido carácter "+e.getKeyChar());
else TF.setText("Introducido carácter ENVIAR");

}

public void keyTyped(KeyEvent e)
{

}

}

}



  Volver al inicio de la página