## Sumario de Texto

El API de texto de Swing es grande. Este tutorial ha mostrado un sencillo ejemplo del uso de cada componente, cubriendo la línea de fundada por JTextComponent, y muestra como utilizar esa herencia pra hacer cosas interesantes con los componentes de texto.

#### El API de Texto

> Esta sección proporciona estas tablas de API de los componentes de texto:
> - Clases de Componentes de Texto Swing
> - Métodos de JTextComponent para Seleccionar Atributos
> - Convertir Posiciones entre el Modelo y la Vista
> - Clases e Interfaces que Representan Documentos
> - Métodos útiles para Trabajar con Documentos
> - Métodos de JTextComponent para Manipular la Selección Actual
> - Manipular Cursores e Iluminadores de Selección
> - Comandos de Edición de Texto
> - Unir Pulsaciones a Acciones
> - Leer y Escribir Texto
> - API para Mostrar Texto des una URL

> Clases de Componentes de Texto Swing
> Clase | Descripción
> --- | ---
> JTextComponent | La superclase abastracta para todos los componentes de texto Swing.
> JTextField | Un componente de texto plano, de una sóla línea y opcionalmente editable. Puedes ver Cómo usar Text Fields.
> JPasswordField | Un componente de texto plano, de una sóla línea y opcionalmente editable que enmascara su contenido. Puedes ver Proporcionar un campo de Password.
> JTextArea | Un componente de texto plano, multi línea y opcionalmente editable.
> JEditorPane | Un componente de texto con estilo, multi línea y opcionalmente editable.
> JTextPane | Un componente de texto con estilo, multi línea y opcionalmente editable con soporte para atributos.

> Métodos de JTextComponent para Seleccionar Atributos
> Método | Descripción
> --- | ---
> void setDisabledTextColor(Color) Color getDisabledTextColor() | Selecciona u obtiene el color usado para mostrar el texto cuando el componente está desactivado.
> void setOpaque(boolean) boolean getOpaque() | Selecciona u obtiene si el componente de texto es completamente opaco.
> void setMargin(Insets) Insets getMargin() | Selecciona u obtiene el margen entre el texto y el borde del componente de texto.
> void setEditable(boolean) boolean isEditable() | Selecciona u obtiene si el usuario puede editar el texto del componente de texto.

> Convertir Posiciones entre el Modelo y la Vista
> Método | Descripción
> --- | ---
> int viewToModel(Point) (in JTextComponent) | Convierte el punto especificado en el sistema de coordenadas de la vista a una posición dentro del texto.
> Rectangle modelToView(int) (in JTextComponent) | Convierte la posición especificada dentro del texto en un rectángulo en el sistema de coordenadas de la vista.

> Clases e Interfaces que Representan Documentos
> Clase o Interface | Descripción
> --- | ---
> Document (un interface) | Define el API que debe ser implementado por todos los documentos.
> AbstractDocument (un interface) | Una implementación de una superclase abstracta del interface Document. Esta es la superclase para todos los documentos, proporcionada por el paquete de texto de Swing.
> PlainDocument (una class) | Implementa el interface Document. El documento por defecto para los componentes de texto plano (text field, password field, y text area). Adicionalmente usada por editor pane y text pane cuando cargan texto plano o texto en un formato desconocido.
> StyledDocument (un interface) | Un subinterdace de Document. Define el API que deben utilizar todos los documentos que soporten texto con estilo.
> DefaultStyledDocument (una class) | Implementa el interface StyledDocument. El documento por defecto pàra los componentes de texto con estilo (editor pane y text pane).

> Métodos útiles para Trabajar con Documentos
> Método | Descripción
> --- | ---
> setDocument(Document) Document getDocument() (en JTextComponent | Selecciona u obtiene el documento de un componente de texto.
> Document createDefaultModel() (en JTextField | Sobreescribe este método en text field y sus subclases para crear un documento personalizado en lugar de el de por defecto PlainDocument. Crear un Campo Validado proporciona un ejemplo de cómo sobreescribir este método.
> void insertString(int, String, AttributeSet) void remove(int, int) (en Document) | Estos métodos normalmente son sobreescritos por documentos personalizados. Para ver un ejemplo de un documento personalizado que sobreescribe ambos métodos, puedes ver Crear un Campo Validado.
> void addDocumentListener(DocumentListener) void removeDocumentListener(DocumentListener) (en Document) | Añade o elimina un oyente de document a un documento. Puedes ver Escuchar los cambios en un Document.
> void addUndoableEditListener(UndoableEditListener) void removeUndoableEditListener(UndoableEditlistener) (en Document) | Añade o elimina un oyente de undoable edit a un documento, Los oyentes de Undoable edit se usan en Implementar Deshacer y Repetir.
> int getLength() Position getStartPosition() Position getEndPosition() String getText(int, int) (en Document) | Métodos de Document que devuelven información útil sobre el documento.
> Object getProperty(Object) void putProperty(Object, Object) (in Document) Dictionary getDocumentProperties() void setDocumentProperties(Dictionary) (un AbstractDocument) | Un Document matiene un conjunto de propiedades que se pueden manipular con estos métodos. El ejemplo descrito en Usar un Oyente de Document en un Text Field usa una propiedad para nombrar los componentes de texto para compartir el oyente de document y poder identificar el documento de donde viene el evento.

> Métodos de JTextComponent para Manipular la Selección Actual
> Método th>Descripción
> String getSelectedText() | Obitene el texto actualmente seleccionado.
> void selectAll() void select(int, int) | Selecciona todo el texto o selecciona el textgo de un rango.
> void setSelectionStart(int) void setSelectionEnd(int) int getSelectionStart() int getSelectionEnd() | Selecciona u obtiene una extensión de la selección actual por índice.
> void setSelectedTextColor(Color) Color getSelectedTextColor() | Selecciona u obtiene el color del texto seleccionado.
> void setSelectionColor(Color) Color getSelectionColor() | Selecciona u obtiene el color de fondo del texto seleccionado.

> Manipular Cursores e Iluminadores de Selección
> Interface, Clase, o Método | Descripción
> --- | ---
> Caret (un interface) | Define el API para objetos que representan un punto de inserción dentro de los documentos.
> DefaultCaret (una class) | El cursor por defecto usad por todos los componentes de texto.
> void setCaret(Caret) Caret getCaret() (en JTextComponent) | Selecciona u obtiene el objeto cursor usado por un componente de texto.
> void setCaretColor(Color) Color getCaretColor() (en JTextComponent) | Selecciona u obtiene el color del cursor.
> void setCaretPosition(Position) void moveCaretPosition(int) Position getCaretPosition() (en JTextComponent) | Selecciona u obtiene la posición actual del cursor dentro del documento.
> void addCaretListener(CaretListener) void removeCaretListener(CaretListener) (en JTextComponent) | Añade o elimina un oyente de caret al componente de texto.
> Highlighter (un interface) | Define el API para objetos usados para iluminar la selección actual.
> DefaultHighlighter (una class) | El iluminador por defecto usado por todos los componentes de texto.
> void setHighlighter(Highlighter) Highlighter getHighlighter() (un JTextComponent) | Selecciona u obtiene el iluminador usado por un componente de texto.

> Comandos de Edición de Texto
> Clase o Método | Descripción
> --- | ---
> void cut() void copy() void paste() void replaceSelection(String) (en JTextComponent) | Curta, copia y pega texto usando el sistema del portapapeles.
> EditorKit (una clase) | Edita, lee y escribe texto en un formato particular.
> DefaultEditorKit (una clase) | Una subclase concreta de EditorKit que proporciona capacidades de edición de texto básico.
> StyledEditorKit (una clase) | Una subclase de Default EditorKit que proporciona capacidades adicionales de edición para texto con estilo.
> String xxxxAction (en DefaultEditorKit) | Los nombres de todas las acciones soportadas por el editor kit por defecto.
> BeepAction CopyAction CutAction DefaultKeyTypedAction InsertBreakAction InsertContentAction InsertTabAction PasteAction (en DefaultEditorKit) | Una colección de clases internas que implementan varios comandos de edición de texto.
> AlignmentAction BoldAction FontFamilyAction FontSizeAction ForegroundAction ItalicAction StyledTextAction UnderlineAction (en StyledEditorKit) | Una colección de clases internas que implementan varios comandos de edición para texto con estilo.
> Action[] getActions() (en JTextComponent) | Obtiene las acciones soportadas por este componente. Este método obtiene un array de actions desde el editor kit, si el componente usa alguno.

> Unir Pulsaciones y Acciones
> Interface o Método | Descripción
> --- | ---
> Keymap (un interface) | Un interface para menejar un conjunto de uniones de teclas. Una unión de tecla está representada por un pareja pulsación/acción.
> Keymap addKeymap(nm, Keymap) Keymap removeKeymap(nm) Keymap getKeymap(nm) (en JTextComponent) | Añade o elimina un mapa de teclado del árbol de mapas. También obtiene el mapa de teclado por su nombre. Observa que estos son métodos de clase. El árbol de mapas de teclado es compartido por todos los componentes de texto.
> void loadKeymap(Keymap, KeyBinding[], Action[]) (en JTextComponent) | Añade un conjunto de uniones d eteclas al mapa de teclado especificado. Este es un método de clase.
> void setKeymap(Keymap) Keymap getKeymap() (en JTextComponent) | Selecciona u obtiene el mapa de teclado activo actualmente para un componente de texto particular.
> void addActionForKeyStroke(KeyStroke, Action) Action getAction(KeyStroke) KeyStroke[] getKeyStrokesForAction(Action) (en Keymap) | Selecciona u obtiene las uniones pulsación/acción de un mapa de teclado.
> boolean isLocallyDefined(KeyStroke) (en Keymap) | Obtiene si la pulsación especificada esta unida a una acción en el mapa de teclado.
> void removeKeyStrokeBinding(KeyStroke) void removeBindings() (en Keymap) | Elimina una o todas las uniones de teclas del mapa de teclado.
> void setDefaultAction(Action) Action getDefaultAction() (en Keymap) | Selecciona u obtiene la acción por defecto. Esta acción se dispara si una pulsación no está explícitamente unida a una acción.
> Action[] getBoundActions() KeyStroke[] getBoundKeyStrokes() (en Keymap) | Obtiene un array que contiene todas las uniones de un mapa de teclado.

> Leer y Escribir Texto
> Método | Descripción
> --- | ---
> void JTextComponent.read(Reader, Object) void JTextComponent.write(Writer) (en JTextComponent) | Lee o escribe texto.
> void read(Reader, Document, int) void read(InputStream, Document, int) (en EditorKit) | Lee texto desde un stream a un documento.
> void write(Writer, Document, int, int) void write(OutputStream, Document, int, int) (en EditorKit) | Escribe texto desde un documento a un stream.

> API para Mostrar Texto de una URL
> Método o Constructor | Descripción
> --- | ---
> JEditorPane(URL) JEditorPane(String) (en JEditorPane) | Crea un editor pane cargado con el texto de la URL especificada.
> setPage(URL) setPage(String) (en JEditorPane) | Carga un editor pane (o text pane) con el texto de la URL especificada.
> URL getPage() (en JEditorPane) | Obtiene la URL de la página actual de editor pane (o text pane).

> #### Ejemplos que usan Componentes de Texto

> Esta tabla muestra los ejemplos que usan componentes de texto y dónde encontrarlos.

> Ejemplo | Dónde se describe | Notas
> --- | --- | ---
> TextSamplerDemo.java | Esta página y Usar Componentes de Texto Swing | Usa cada uno de los componentes de texto Swing.
> TextDemo.java | Cómo usar Text Field | Usa un campo de texto y un área de texto básicos.
> TextComponentDemo.java | Esta página | Proporciona un text pane personalizado. Ilustra muchas de las características de los componentes de texto.
> TextFieldDemo.java | Cómo usar Text Fields | Implementa dos campos validados-por-pulsación diferentes.
> PasswordDemo.java | Cómo usar Text Fields y Usar la clase SwingWorker | Usa un campo password.
> ToolBarDemo2.java | Cómo usar Tool Bars | Pone un campo de texto en un barra de herrramientas.
> CustomDialog.java | Cómo usar Dialogos | Pone un campo de texto validado en un diálogo.
> TreeDemo.java | Cómo usar Trees | Usa un editor pane para mostrar ayuda cargada desde un fichero HTML.

Ozito