Cómo Dibujar Texto en una Ventana / Posicionamiento Versión Texto pt. 2
Subtitles of the Movie
En ésta lección, veremos cómo crear una línea de texto en el centro de una ventana. Podremos cambiar el tamaño y la forma de la ventana y el texto se moverá automáticamente para mantenerse en el centro. Como en el ejemplo anterior, esta Clase extiende la Clase "Canvas" para crear una ventana en la cual podemos dibujar el texto. Como el Constructor del objeto "TextOne", el del objeto "TextTwo" configura el tamaño de la ventana que será desplegada. El único Método declarado en ésta Clase es el Método "paint", el cual será usado para calcular la posición de una cadena de caracteres y desplegarla en la ventana en esa posición. Para centrar un texto en una ventana, debemos conocer el tamaño de la misma. La información está disponible, pero ésta proviene en la forma de un objeto "Rectangle". La sentencia "Rectangle rect" declara una ubicación para guardar la dirección de un objeto "Rectangle". Por cierto, la ubicación utilizada para guardar la dirección de un objeto se denomina Referencia porque una vez la dirección se guarda allí, se utiliza el nombre de la Referencia para referirse al objeto. En el Java, nunca se direcciona un objeto directamente, sino que sólo nos podemos referir a él a través del nombre de la Referencia de ése objeto. Ésta sentencia corresponde a un llamado al Método "getBounds" de la Clase "Canvas". Dentro de éste Método, tenemos una nueva sentencia que crea un objeto "Rectangle" que contiene la altura y el ancho de la ventana. Al aparecer un objeto en el Java, en algún lugar se encuentra la sentencia "new" que lo creó. La única manera de crear un objeto en el Java es usando la sentencia "new". Ésta constituye otra Referencia. Ésta sentencia es la declaración de una Referencia a un objeto "String". El objeto "String" es muy especial en el Java y lo veremos en detalle más adelante. Por ahora, basta con saber que éste es un objeto especial que contiene una cadena de caracteres. Podemos crear una cadena simplemente ingresando una cadena de caracteres codificada dentro del código. Ésta sentencia crea un objeto "String" y guarda su dirección en la Referencia "String". Aquí, no debemos especificar la sentencia "new" porque el Java lo hace por sí mismo. Hablaremos acerca del objeto "String" más adelante. Cada tipo de letra tiene su propio conjunto de medidas. La definición del tipo de letra está almacenada dentro del objeto "Graphics". El objeto "Graphics" contiene un Método llamado "getFontMetrics", el cual restituye al objeto "FontMetrics", el cual contiene todas las medidas del tipo de letra. Observe que la Referencia del objeto "FontMetrics" se denomina "fm"… y el llamado al Método que restituye el objeto "FontMetrics" se encuentra en la misma sentencia. El código anterior que crea los objetos "Rectangle" y "String" se dividió en dos líneas cada uno, cuando pudo haber sido escrito en una sola línea de ésta manera. El código resultante es el mismo. Sólo es cuestión de decidir cómo preferimos escribirlo. Es importante recordar que se están realizando dos acciones. Primero, se está declarando una Referencia y segundo, se está creando un objeto y su dirección se almacena en la Referencia. El objeto "FontMetrics" contiene toda la información sobre el ancho de cada carácter del tipo de letra. El Método "stringWidth" puede ser llamado para revisar la cadena de caracteres, sumar todos los valores del ancho y determinar la longitud de la cadena. Necesitamos ésta información para saber dónde ubicar el inicio de la cadena en la ventana. El valor de la variable "y" corresponde al contenido de la posición vertical de la cadena. Vamos a centrar un texto verticalmente, así que podemos configurar el valor de la variable "y" a la mitad de la altura de la ventana. La línea de base será desplegada a ésta altura. La línea de base no está ubicada exactamente en el centro vertical del texto, pero está lo suficientemente cerca para ésta aplicación en particular. Si desea, puede obtener el valor de las astas ascendentes y descendentes del objeto "FontMetrics" aplicando un poco de álgebra, sumando exactamente dónde debería estar el centro de la cadena y donde debería ubicarse la línea de base para centrar el texto; la diferencia sólo sería de un píxel o dos en éste ejemplo, y realmente no vale la pena todo ése esfuerzo. La posición horizontal de una cadena es un poco distinta. Aquí tenemos que aplicar un poco de álgebra… para descifrar la posición en el borde izquierdo de la cadena. Comenzamos con la mitad del ancho de la ventana dónde queremos que aparezca la cadena y restamos la mitad del ancho de la cadena, es decir, el lugar donde queremos que ésta comience. Finalmente, usamos la sentencia "drawString" para dibujar la cadena. El argumento "str" contiene los caracteres que van a ser desplegados y los valores de las variables "x" y "y" contienen la posición de la ventana. Esto es todo. Éste comando se encarga de compilar los programas. Los programas son "TextTwo" y "ShowTextTwo". La línea principal del programa "ShowTextTwo"… es exactamente igual que en el programa "ShowTextOne" del ejemplo anterior, excepto que ésta despliega la ventana "TextTwo" en vez de la ventana "TextOne". El programa se ejecuta de ésta manera. La ventana aparece y el texto está en el centro. Al expandir la ventana, el texto se mantiene en el centro. Al extender la ventana horizontal o verticalmente, el texto se reposiciona para mantenerse en el centro. Cada vez que se suelta el ratón al cambiar el tamaño de la ventana, el programa llama al Método "paint" y se realizan los cálculos necesarios para determinar exactamente el lugar donde aparecerá el texto. Éste aparece en el centro de la ventana sin importar la forma de la misma. nde aparecerá el texto. Éste aparece en el centro de la ventana sin importar la forma de la misma.
Tutorial Information
| Course: | Java: Introduction to Java Programming (Español) |
| Author: | Arthur Griffith |
| SKU: | 33644 |
| ISBN: | 1-932808-86-8 |
| Release Date: | 2005-09-22 |
| Duration: | 8.5 hrs / 92 lessons |
| Captions: | Available on CD and Online University |
| Compatibility: |
Vista/XP/2000, OS X, Linux QuickTime 7, Flash 8 |
VTC Sign up & Benefits
- Unlimited Access
- 81,350 Video Tutorials (20,800 free)
- Video Available as Flash or QuickTime
- Over 782 Courses
- $30 for One Month Access
- Multi-User Discounts Available
United States 