Etiqueta: java

Buffered

Trabajando con ficheros y flujos de texto

Cuando necesitamos trabajar con archivos de texto es necesario utilizar flujos (buffers) de texto. En este caso vamos a ver en qué consisten las clases BufferedReader y BufferedWriter, ambas disponibles en la librería java.io y que debemos agregar a nuestro proyecto. Tanto BufferedReader como BufferedWriter nos permiten trabajar con archivos de texto línea a línea, en lugar de ir caracter a caracter, lo que optimiza su funcionamiento.

ESCRIBIR texto EN un fichero:

En primer lugar debemos elegir el fichero desde el que queremos leer el texto, que será un objeto de tipo File. Si este fichero lo extraemos de un JFileChooser podemos obtenerlo mediante:

File fichero = this.jFileChooser.getSelectedFile();

Seguidamente extraemos el flujo del fichero mediante las instrucciones:

BufferedWriter flujo = new BufferedWriter(new FileWriter(fichero)); //Abrimos el flujo
flujo.write(this.jEditorPane.getText()); //Escribimos lo que haya en el jEditorPane
flujo.close(); //Cerramos el flujo
LEER texto DE un fichero:

En primer lugar debemos elegir el fichero en el que queremos escribir el texto, que será un objeto de tipo File. Si este fichero lo extraemos de un JFileChooser podemos obtenerlo mediante:

File fichero = this.jFileChooser.getSelectedFile();

Seguidamente extraemos el flujo del fichero mediante las instrucciones:

BufferedReader flujo = new BufferedReader(new FileReader(fichero)); //Abrimos el flujo
String texto; //Definimos una cadena de texto que utilizaremos para leer líneas del fichero
while((texto = flujo.readLine()) != null) { //Mientras haya líneas en el fichero
    this.jEditorPane.setText(this.jEditorPane1.getText() + texto + "\n"); //Añadimos al panel
}
flujo.close(); //Cerramos el flujo

¡Ten en cuenta que, en ambos casos, hay que capturar la excepción «FileNotFoundException»!

JFileChooser

JFileChooser: eligiendo ficheros de nuestro equipo

JFileChooser nos permite abrir un cuadro de diálogo donde el usuario puede elegir un fichero a través del explorador de archivos de su equipo. Lo habitual es asociar este JFileChooser a un evento de un botón o de un menú y abrirlo con el método showOpenDialog.

El resultado de este método es un entero que devolverá lo que el usuario haya elegido, pudiendo ser:

  • JFileChooser.CANCEL_OPTION: si el usuario pulsa Cancelar.
  • JFileChooser.APPROVE_OPTION: si el usuario elige un fichero y pulsa el botón Aceptar.
  • JFileChooser.ERROR_OPTION: si ocurre un error.

El fichero elegido por el usuario se puede obtener en la variable de tipo fichero jFileChooser.getSelectedFile();

Así, podemos obtener un pequeño ejemplo de cómo funcionaría este elemento:

JFileChooser fc = new JFileChooser(); //Creamos un nuevo objeto JFileChooser
int seleccion = fc.showOpenDialog(this.EditorPane1); //Abrimos el JFileChooser y guardamos el resultado en seleccion
if (seleccion == JFileChooser.APPROVE_OPTION){ //Si el usuario ha pulsado la opción Aceptar
    File fichero = fc.getSelectedFile(); //Guardamos en la variable fichero el archivo seleccionado
}

 

JScrollBar, JSlider, JSpinner

Ejercicio UT2-E8 Escalas con JScrollBar, JSlider y JSpinner

Ahora que conocemos el funcionamiento de JScrollBar, JSlider y JSpinner crea un JFrame con los tres elementos y un diseño similar a la captura que se muestra a continuación:

JScrollBar, JSlider, JSpinner
JScrollBar, JSlider, JSpinner

El funcionamiento será sencillo:

  • En el cuadro que se encuentra a la derecha del Slider se mostrará el valor del mismo de 0 a 100.
  • En el cuadro que se encuentra a la derecha de la barra de Scroll se mostrarán valores de 0 a 500.
  • Habrá un Spinner con fecha y hora que partirá de la fecha y hora actual.
  • Habrá otro Spinner que mostrará la fecha desglosada en tres campos, siendo el primero un valor del 1 al 31, el segundo de Enero a Diciembre, y el último de 1980 a 2100, comenzando por el año 2015.

Escalas: JScrollBar y JSlider

Los objetos JScrollBar y JSlider nos permiten crear escalas de un modo sencillo utilizando una barra con un elemento desplazable.

Para capturar el valor de dicha escala debemos modificar el evento StateChanged y obtener el atributo Value mediante el método getValue. Veamos un ejemplo:

private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {                                      
        System.out.println(String.valueOf(this.jSlider1.getValue());

Hay que tener en cuenta que el valor mínimo y máximo de estos elementos vendrán determinados por sus propiedades minimum y maximum; su valor inicial se indicará en la propiedad value; y en el caso del JScrollBar, habrá que contar con que la propiedad «VisibleAmount» deberá restarse del total de la escala, de tal manera que si nuestro JScrollBar tiene un mínimo de 0 y un máximo de 100, y su VisibleAmount es 10, la escala llegará del 0 al 90.

Ejercicio UT2-E6 Calculadora

Crea una calculadora integrando la usabilidad que le permita al usuario elegir en un menú entre la opción Básica o Programación.

La opción básica dispondrá de las siguientes funciones:

  • Escribir números decimales.
  • Sumar, restar, multiplicar o dividir.
  • Añadir signo positivo / negativo al número que se encuentre en el visor.
  • Borrar los datos.
  • Validar los datos introducidos mostrando un mensaje de error en caso de que se introduzcan datos no válidos.
  • Tú decides si el usuario puede o no introducir números en el cuadro de texto mediante el teclado o lo hará únicamente con los botones. En cualquier caso debes gestionar esto para que no de error.

La opción programación dispondrá de las siguientes funciones:

  • Botones para los dígitos del 0 al 9 y de la A a la F.
  • Un campo para introducir un número (en binario, octal, hexadecimal o decimal).
  • Un RadioButton para elegir qué tipo de base ha elegido el usuario. En función de la base elegida los botones de los dígitos que no incluya el sistema deben estar desactivados (por ejemplo, en binario únicamente pueden estar activados los botones 0 y 1).
  • Cuatro cuadros de texto donde se mostrará la traducción del campo introducido por el usuario en las cuatro bases.
  • No hace falta que implementes las operaciones de sumar, restar…

¡Consigue una estrella de Diseñador si desarrollas un proyecto usable!

Diseñador

Diseñador

10 Puntos

Por haber conseguido un proyecto usable la Comunidad te entrega una estrella de Diseñador.