Para llamar al m�todo est�tico showMessageDialog de la clase JOption, escribimos:
JOptionPane.showMessageDialog( null, "File divedetails.txt not found.", null, JOptionPane.ERROR_MESSAGE );
Con el formato anterior llamamos a showMessageDialog, no necesitamos crear un ejemplar de la clase JOptionPane. Sin embargo, podemos crear cajas de di�logo m�s complejas con un ejemplar de la clase JOptionPane.
�Completar la clase NorthPanel
Los bloques try/catch y las instrucciones para imprimir en la consola est�n en su lugar. Ahora, insertaremos la llamada al m�todo showMessageDialog en los dos bloques catch. En caso de que el fichero solicitado no se encuentre, imprimimos un mensaje en la consola y mostramos un di�logo para informar al usuario del problema.
Sigue estos pasos... |
---|
|
Cuando ejecutamos la aplicaci�n aparece un di�logo y un mensaje en la consola, avis�ndonos que no encuentra el fichero.
Todav�a hay otra forma de manejar esta condici�n. Si no se encuentra el fichero, podemos forzar a la aplicaci�n a crear el fichero con una llamada a un m�todo de las clase File:
createTempFile(String prefix, String suffix)
Este m�todo crea un fichero vac�o en el directorio por defecto de ficheros temporales, usando el prefijo y el sufijo dado para generar su nombre.
Sigue estos pasos... |
---|
|

Ahora cuando ejecutamos la aplicaci�n, el resultado concordar� con esta imagen. Obviamente, crear un fichero cuando no existe normalmente no es una buena idea. Hay mejores circunstancias para el m�todo createNewFile, pero hemos aprendido c�mo manejar la condici�n de fichero no encontrado de varias formas:
- Imprimiendo un mensaje de error en la consola.
- Creando un di�logo desplegable que alerta al usuario sobre fichero desaparecido.
- Creando el fichero deseado, aunque vac�o.
El objetivo era leer texto en un �rea de texto y mostrarlo en la pantalla. Como createNewFile ha creado un fichero con el nombre correcto para nosotros, �brelo e introduce alg�n texto. Puedes usar el texto suministrado o crearlo por t� mismo.
Sigue estos pasos... |
---|
|
Ahora aparece el texto en el �rea de texto en la parte superior del panel Log Dives. Como el fichero existe con texto, funciona el c�digo del bloque try, y se lee el texto dentro del �rea de texto especificada. Si le sucediera algo al fichero, si se corrompe o si se borra o se renombra accidentalmente, el c�digo fluye dentro del bloque catch apropiado y ejecuta ese c�digo.
�La clase CenterPanel
La clase NorthPanel est� completa y lee el fichero y muestra el texto en el �rea de texto de la regi�n norte del BorderLayout del objeto Dives. El objeto CenterPanel escribe experiencias de buceo en un fichero, e incluye lo siguiente:
- Un �rea de texto con paneles desplazables que se puede editar.
- Un bot�n Save Comments.
- Una imagen de un tibur�n.
- Un controlador de distribuci�n Boxlayout.

Hemos creado un �rea de texto con texto codificado dentro del display, y hemos dise�ado un �rea de texto que lee sus contenidos desde un fichero. La siguiente �rea de texto que vamos a crear contiene un �rea editable para que el usuario introduzca texto y una barra de desplazamiento para que el usuario pueda desplazarse cuando el texto va m�s all� de los l�mites de tama�o del propio �rea de texto.
Una vez que el buceador ha metido el texto en el �ra de texto, pulsa el bot�n Save Comments, y el m�todo actionPerformed muestra una caja especial para que el usuario introduzca el nombre del fichero, grabe el fichero en una localizaci�n deseada, luego pulsa Save. Entonces el texto se escribe en un fichero creado en el sistema.
Como el bot�n Save Comments est� asociado con un objeto listener, el CenterPanel debe o implementar el interface ActionListener o contener una clase interna que implemente el interface ActionListener. El c�digo del m�todo actionPerformed es corto y correcto, por eso implementar esta clase con el interface ActionListener es suficiente.
Sigue estos pasos... |
---|
|
Ahora estamos listos para crear los contenidos de nuestro constructor para construir los componentes GUI necesarios.
��rea de Texto Editable y con Barras de Desplazamiento
Creamos un �rea de texto de la forma usual, excepto en que esta vez el m�todo setEditable deber�a seleccionarse a true, que permite a los buceadores introducir el texto sobre sus sesiones en el �rea de texto. Adem�s, este �rea de exto est� inicializada con texto que explica el prop�sito de este �rea de texto.
Una vez que est� construida el �rea, se a�ade un objeto scrollBar, un ejemplar de la clase JScrollPane. En otras palabras, las barras de desplazamiento no son parte de la vista editable de la ventana. En su lugar, el �rea de texto se pasa a un objeto que crea las barras de desplazamiento y maneja sus funcionalidades.
Un ScrollPane se usa para mostrar un componente con barras de desplazamiento internas para desplazar el componente hacia todos los lados. Un ScrolPane es un objeto del tipo JScrollPane, que extiende la clase JComponent.
La clase JScrollPane dispone de los siguientes constructores:
- JScrollPane()
Crea un JScrollPane vac�o con barras de desplazamiento veritical y horizontal que aparecen s�lo cuando se necesitan. - JScrollPane(Component view)
Crea un JScrollPane que muestra el contenido del componente especificado con barras de desplazamiento vertical y horizontal que aparecen siempre que el �rea del componente es mayor que la vista. - JScrollPane(Component view, int vsbPolicy, int hsbPolicy)
Crea un JScrollPane que muestra la vista del componente en un viewport con la posici�n de la vista controlada por un par de barras de desplazamiento. - JScrollPane(int vsbPolicy, int hsbPolicy)
Crea un JScrollPane con la pol�tica de barras especificada.
Pol�ticas se refiere a las propiedades del ScrollPane, o al esquema a utilizar, como si las barras deber�an aparecer siempre o s�lo cuando se las necesita.
La clase JScrollPane() implementa el interface ScrollPaneConstants. Estas constantes muestran las barras de desplazamiento siempre, s�lo cuando son necesarias o bajo necesidades b�sicas o nunca. Seleccionamos las constantes de dos formas posibles:
- Dentro del constructor:
scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane. HORIZONTAL_SCROLLBAR_AS_NEEDED);
- LLamando a un m�todo:
scrollpane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Sigue estos pasos... |
---|
|
El �ltimo componente que necesitamos crear y a�adir es el bot�n Save Comments. Cuando se pulsa este bot�n, se llama al m�todo actionPerformed. M�s adelante definiremos que este m�todo traiga un componente especial que le permita al usuario nombrar un fichero que desee salvar.
La variable para el bot�n que hemos creado se usa como el nombre de referencia saveAs. Este bot�n est� asociado con un objeto oyente a trav�s del m�todo addActionListener, como hemos echo en anteriores partes del tutorial. Entonces se crea el objeto imagen con un objeto etiqueta.
Sigue estos pasos... |
---|
|
�Por qu� la palabra clave this es un par�metro en el m�todo addActionListener? |
---|