En el articulo anterior trabajamos los componentes Atómicos en esta oportunidad le daremos paso a los componentes de Texto....
Nuevamente vamos a dejar el tema de contenedores para una próxima entrada, ya que primero evacuaremos los componentes que los contendedores alojarán...
Seguimos con la mecánica anterior, vamos a ver en términos generales cada componente y al final se dejará un enlace de descarga donde veremos los componentes en acción....
Que Son?
Los componentes de Texto son los que nos permiten procesar datos de tipo cadena, sea como entrada o salida de información, todos los sistemas necesitan procesar datos, tener un mecanismo de entrada y salida disponible para el usuario, este tipo de componentes son obligados en casi todos los desarrollos...
Cuales Son?
Existen diferentes componentes y formas de procesar texto, podemos hacerlo por consola o por medio de ventanas de Dialogo... veamos los que nos provee java swing...
JTextField.
Es uno de los componentes mas comunes, permite introducir un campo de texto simple en nuestra ventana, ideal para ingresar o mostrar datos puntuales en un formulario (Api de Java).
JFormattedTextField.
Permite introducir un campo de texto con formato, (si definimos que solo recibe números no permitirá letras, para esto se requiere definir la mascara a utilizar...) es muy útil al momento de hacer validaciones en nuestros formularios, tambien muy comun al trabajar con fechas (Api de Java).
JPasswordField
Al verlo es un campo simple, sin embargo es un campo de texto especial que oculta los caracteres ingresados, su uso se centra en ventanas de login o ingreso de contraseñas (Api de Java).
JTextArea
Permite vincular un área de texto donde el usuario ingresará información o simplemente para presentar cadenas de texto, obviamente permite procesar mucha mas cantidad de información que los componentes anteriores (Api de Java).
JEditorPane
Es un componente similar al anterior, sin embargo permite vincular un área de texto con propiedades de formato, es decir, por ejemplo, podemos darle formato HTML a nuestro texto usando etiquetas, modificando el tamaño, color y hasta vinculando imagenes... (Api de Java).
JTextPane
Es practicamente igual al anterior, básicamente posee las misma funciones, por lo cual podemos decir que es una mejora del JEditorPane permitiendo otras opciones de formato, colores, iconos, trabajo con estilos, componentes entre otros (Api de Java).
Nuevamente vamos a dejar el tema de contenedores para una próxima entrada, ya que primero evacuaremos los componentes que los contendedores alojarán...
Seguimos con la mecánica anterior, vamos a ver en términos generales cada componente y al final se dejará un enlace de descarga donde veremos los componentes en acción....
Que Son?
Los componentes de Texto son los que nos permiten procesar datos de tipo cadena, sea como entrada o salida de información, todos los sistemas necesitan procesar datos, tener un mecanismo de entrada y salida disponible para el usuario, este tipo de componentes son obligados en casi todos los desarrollos...
Cuales Son?
Existen diferentes componentes y formas de procesar texto, podemos hacerlo por consola o por medio de ventanas de Dialogo... veamos los que nos provee java swing...
JTextField.
Es uno de los componentes mas comunes, permite introducir un campo de texto simple en nuestra ventana, ideal para ingresar o mostrar datos puntuales en un formulario (Api de Java).
cajaDeTexto = new JTextField(); cajaDeTexto.setText("CoDejaVu"); cajaDeTexto.setBounds(90, 60, 90, 23);
JFormattedTextField.
Permite introducir un campo de texto con formato, (si definimos que solo recibe números no permitirá letras, para esto se requiere definir la mascara a utilizar...) es muy útil al momento de hacer validaciones en nuestros formularios, tambien muy comun al trabajar con fechas (Api de Java).
/**Creamos la mascara con la que trabajaremos*/ mascara= new MaskFormatter("########"); /**Le enviamos la mascara a el componente*/ cajaDeTextoConFormato= new JFormattedTextField(mascara); /**Importante definir el foco del componente, para que almacene el valor*/ cajaDeTextoConFormato.setFocusLostBehaviorcajaDeTextoConFormato.COMMIT); cajaDeTextoConFormato.setBounds(330, 60, 80, 23);
JPasswordField
Al verlo es un campo simple, sin embargo es un campo de texto especial que oculta los caracteres ingresados, su uso se centra en ventanas de login o ingreso de contraseñas (Api de Java).
campoContraseña = new JPasswordField(); campoContraseña.setBounds(530, 60, 80, 23);
JTextArea
Permite vincular un área de texto donde el usuario ingresará información o simplemente para presentar cadenas de texto, obviamente permite procesar mucha mas cantidad de información que los componentes anteriores (Api de Java).
areaDeTexto = new JTextArea(); areaDeTexto.setText(CadenaConElTexto); areaDeTexto.setBounds(90, 90, 520, 103);
JEditorPane
Es un componente similar al anterior, sin embargo permite vincular un área de texto con propiedades de formato, es decir, por ejemplo, podemos darle formato HTML a nuestro texto usando etiquetas, modificando el tamaño, color y hasta vinculando imagenes... (Api de Java).
areaEditorPane = new JEditorPane(); areaEditorPane.setBounds(90, 200, 520, 103); /**Definimos el tipo de texto que utiliza*/ areaEditorPane.setContentType("text/html"); areaEditorPane.setText(CadenaConTextoHTML);
JTextPane
Es practicamente igual al anterior, básicamente posee las misma funciones, por lo cual podemos decir que es una mejora del JEditorPane permitiendo otras opciones de formato, colores, iconos, trabajo con estilos, componentes entre otros (Api de Java).
/**usamos StyleContext para definir el estilo a usar*/ StyleContext estilo = new StyleContext(); /**creamos el estilo, no definimos nombre ni estilo padre...*/ Style estiloRojo = estilo.addStyle(null, null); StyleConstants.setForeground( estiloRojo, Color.red ); /**definimos el estilo a usar*/ DefaultStyledDocument estiloPorDefecto=new DefaultStyledDocument(estilo); areaTextPane = new JTextPane(estiloPorDefecto); areaTextPane.setCharacterAttributes(estiloRojo, false); areaTextPane.setBounds(90, 310, 520, 103);
El Ejemplo.
Nuevamente les comparto el código fuente de una pequeña aplicación de ejemplo muy útil para ver los componentes anteriores en funcionamiento....... también vinculamos un botón para el evento en el que procesamos la información ingresada.......
Cabe resaltar que esta entrada brinda una idea general sobre estos componentes mas no es un ejemplo profundo de cada uno de ellos, mas adelante se trabajarán por separado para un mayor entendimiento....
Descarga.
Como es costumbre en el enlace de descarga se encuentra el archivo .rar con la aplicación, solo es cuestion de descomprimir y abrir con Eclipse pero si usas NetBeans te interesará esta entrada con un vídeo paso a paso de como abrirlo en el........ recuerden que es gratis, y nada cuesta opinar, compartir o agradecer :)
Conclusiones.
Vimos de forma rápida cuales son los componentes de texto que nos provee Java Swing, con esto nos hacemos a una idea de cuales podemos utilizar y para que momentos...
Hay componentes muy parecidos o con muy pocas diferencias, su uso depende de lo que necesitemos hacer y el conocimiento que tengamos de cada uno de ellos.
Mas adelante vendrán nuevas entradas con ejemplos puntuales....
También te podría Interesar.
- Componentes Atomicos Java Swing
- Componentes Java Swing
- Ejemplo Ventanas en Java.
- JFrame y JDialog
- Que es Java Swing?
- Instalación del servidor de aplicaciones JBoss
- Instalación Apache ANT
- Conceptos Básicos de Programación Orientada a Objetos.
¿Hay algo que quieras anexar o comentar sobre esta entrada? no dudes en hacerlo.....y si te gustó...... te invito a compartir y Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)
Muy bueno el artículo, espero el que viene para profundizar más en el JTextPane
ResponderEliminarHola Julio que pena la demora, gracias por el comentario y espero mas adelante continuar con ese tema ;) Saludos
EliminarCristian, fíjate que estoy haciendo una clases para formatear una tabla y he declarado unas variables para poder darle formato a los textos de la tabla:
ResponderEliminarFont normal = new Font("Arial", Font.PLAIN, 12);
Font negrita = new Font("Arial", Font.BOLD, 14);
Font cursiva = new Font( "Arial",Font.ITALIC,13 );
El problema que tengo es que no puedo crear un nuevo FONT subrayado, este bloque no me funciona:
Font subrayado = new Font("Arial", TextAttribute.UNDERLINE_ON, Font.BOLD);
Habrá posibilidades de subrayar texto y darle Negrilla?
Thanks in advance
Saludos.
Si para dejar en negrita y subrayado, tenes que hacer (este ejemplo es uno que hice yo sobre un JTextArea):
Eliminar//Obtenemos la fuente que tiene el textarea
Font fuente = textarea.getFont();
//Creamos una nueva fuente con la fuente y tamaño original, pero en negrita
Font fuenteNueva = new Font(fuente.getName(), Font.BOLD, fuente.getSize());
//Creamos un objeto atributos para que se pueda subrayar
Map atributos = new java.util.HashMap<>();
//Seteo el atributo que me dice que debemos subrayar
atributos.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
//Seteamos al textarea la fuente en negrita y subrayada
areatexto.setFont(fuenteNueva.deriveFont(atributos));
Espero te sirva . Saludos. HUGO.
muy buen articulo :) me servira bastante
ResponderEliminarHola, me alegra que te gustara, un saludo
EliminarHola, pues recien veo este Blog , esta muy interesante. sigue posteando , te apoyo hermano, a la vez dejas muchas enseñanzas.
ResponderEliminarHola Junior, gracias por comentar y claro, es es la idea seguir compartiendo, un saludo
EliminarMuy bueno tu blog hermano.
ResponderEliminarCon gusto, me alegra que te sirviera!!!
EliminarExcelente ...
ResponderEliminarYo, empezando con Java.
Traigo un problemilla que quizás puedas aclarar: Le pongo atributos varios a un texto dentro de un JTexPane, ¿Como puedo leer esos atributos carácter a carácter?
Hola, lo que puedes hacer es obtener toda la info en un String o StringBuffer y luego puedes investigar como aplicar el metodo charAt() para recorrer la cadena....... miralo por ese lado, espero te sirva ;)
EliminarBuenas amigoo yo eh conseguido dar formato a un jtexfeil en java pero a la hora de guardar al final solo guarda dos digitos.. es que el tipo de dato en la base de datos es Double... y al ingresar por ejemplo asi: 23.000 directamente lo guarda así 2.3 desde ya gracias y saludos..!!
ResponderEliminarBuena tarde Richard, cordial saludo:
EliminarDisculpa, aún tienes el inconveniente manifestado?
Quedo atento!
Muchisimas gracias, me sirvio de gran ayuda.
ResponderEliminarBuenas tardes Cristian
ResponderEliminarexcelente tu aporte soy estudiante y apenas voy en marcha.
saludos cordiales
buenas tardes Cristian
ResponderEliminarmuy bueno su aporte
soy estudiante y apenas estoy empezando, quería preguntar que si puede profundizar más sobre el jformatetextfield y el jtree, me seria de mucha ayuda...
Gracias