Paquete fundamentos

Versión 3.5

Clases sencillas para entrada/salida gráfica en Java

http://www.istr.unican.es/fundamentos/

(c) Universidad de Cantabria, SPAIN

Autores: Michael González  mgh@unican.es y Mariano Benito Hoz <mbenitohoz at gmail dot com>

El paquete fundamentos es software libre; puedes redistribuirlo o modificarlo bajo los términos de la Licencia General Pública de GNU (LGPL), publicada por la Free Software Foundation. Algunas de las clases están basadas en el paquete javagently, cuya autora es Judy Bishop, y que se distribuye con su libro “Java Gently”. Addison Wesley, 1998.

 

  1. Introducción
  2. Lectura
  3. Escritura
  4. Mensaje
  5. MensajeSiNo
  6. Menu
  7. Dibujo
  8. Grafica
  9. CajaTexto
  10. Cambios respecto a versiones previas
  11. Descarga e instalación

1. Introducción

El paquete fundamentos es un conjunto de clases para entrada/salida gráfica. Está diseñado para principiantes de Java que no desean gastar mucho tiempo en aprender la interfaz gráfica completa de java, pero que quieren poder hacer programas vistosos con entrada/salida gráfica.

El paquete fundamentos se compone de los siguientes módulos:
 
Lectura Proporciona una ventana simple con capacidad de lectura de datos de los tipos entero, real y String.

Se pueden representar y leer múltiples datos en la misma ventana. Además, se puede poner un mensaje en la parte superior de la ventana.

Escritura Proporciona una ventana simple con capacidad de mostrar datos de los tipos entero, real y String.

Se pueden representar varios datos en la misma ventana. Cada dato va acompañado de una etiqueta. Tiene un boton OK para cerrar la ventana.

Mensaje Proporciona una ventana simple para mostrar un mensaje corto. Tiene un boton OK para cerrar la ventana.
MensajeSiNo Proporciona una ventana simple para hacer una pregunta. Tiene un botón para responder "Si" y otro para responder "No"
mensajesino
Menu Proporciona una ventana simple con varios botones, donde se permite al usuario elegir una de entre varias opciones. 
Dibujo Proporciona una ventana simple en la que se pueden dibujar figuras geométricas así como representar imágenes
Grafica Proporciona una ventana simple para dibujar gráficos bidimenisonales a partir de un conjunto de puntos.
CajaTexto
Proporciona una ventana para lectura de texto multilínea. El texto se puede leer como líneas individuales, así como números enteros o reales simples o dispuestos en varias columnas
CajaTexto.gif

 

2. Lectura

Los objetos de la clase Lectura proporcionan: La descripción de la clase está en Lectura.java.

Un ejemplo del uso de esta clase se puede encontrar en: Ejemplo con Lectura/Escritura.

Resumen de las operaciones de Lectura.java:
 
 new Lectura (titulo) Constructor, con el título de la ventana
 println (string) Muestra un string en la cabecera .
 creaEntrada (etiqueta, valor) Crea una caja para leer un valor; el valor puede ser double, int o String.
 espera (mensaje) Muestra un mensaje, y espera a que el usuario teclee datos y pulse aceptar.
 esperaYCierra (mensaje) Igual que espera, pero ademas cierra la ventana al aceptar
 espera () Espera a que el usuario teclee datos y pulse aceptar.
 esperaYCierra () Igual que espera, pero ademas cierra la ventana al aceptar.
 leeDouble (etiqueta) Lee un double de la caja con esa etiqueta
 leeInt (etiqueta) Lee un int de la caja con esa etiqueta
 leeString (etiqueta) Lee un String de la caja con esa etiqueta

3. Escritura

 Los objetos de la clase Escritura proporcionan: La descripción de la clase está en Escritura.java.

Un ejemplo del uso de esta clase se puede encontrar en: Ejemplo con Lectura/Escritura.

Resumen de las operaciones de Escritura.java:
 
  new Escritura (titulo) Constructor que crea el objeto con su título
  insertaValor (etiqueta, valor) Crea una caja con la etiqueta y valor indicados
 espera() Espera a que se pulse el botón OK y cierra la ventana.

 

4. Mensaje

Los objetos de la clase Mensaje proporcionan: La descripción de la clase está en Mensaje.java.

Un ejemplo del uso de esta clase se puede encontrar en: Ejemplo con Mensaje.

Resumen de las operaciones de Mensaje.java:
 
 new Mensaje () Crea el objeto
 new Mensaje (string) Crea el objeto con el título indicado
 escribe (string) Muestra el mensaje y espera a que se pulse el botón OK

5. MensajeSiNo

Los objetos de la clase MensajeSiNo proporcionan:
La descripción de la clase está en MensajeSiNo.java

Un ejemplo del uso de esta clase se puede encontrar en Ejemplo con MensajeSiNo

Resumen de las operaciones de MensajeSiNo.java:

 new MensajeSiNo () Crea el objeto
 new MensajeSiNo (String) Crea el objeto con el título indicado
 boolean pregunta (String) Muestra el mensaje, espera a que se pulse el botón "Si o "No" y retorna true si el botón pusado fue "Si" y false si fue "No"


6. Menu

Los objetos de la clase Menu proporcionan un conjunto de botones para elegir entre una serie de ociones. También proporcionan una operación para que la aplicación espere a que se pulse uno de los botones, y obtenga el código entero asociado a ese botón.

La descripción de la clase está en Menu.java.

Un ejemplo del uso de esta clase se puede encontrar en: Ejemplo con Menu.

Resumen de las operaciones de Menu.java:
 
new Menu (titulo) Crea el objeto Menu con su título
println (string) Muestra un string en la cabecera
insertaOpcion (nombre, codigo) Crea un botón con el nombre y código indicado
int leeOpcion () Espera a que se pulse un botón, y retorna el código del botón pulsado
int leeOpcion (mensaje) Muestra un mensaje, espera a que se pulse un botón, y retorna el código del botón pulsado.
void cierra()
Cierra la ventana

7. Dibujo

Los objetos de la clase Dibujo proporcionan una ventana donde se pueden dibujar figuras simples e imágenes: También proporcionan un botón OK para esperar a que el usuario visulaice el dibujo, y un botón "Cancelar" que finaliza la aplicación.

Además de las operaciones de dibujar, la clase Dibujo tiene otras para modificar los atributos de los dibujos que se pinten a continuación:

Los colores son objetos de la clase ColorFig. Esta clase tiene operaciones para crear y modificar colores, así como constantes con los colores más usuales.

La descripción de la clase está en Dibujo.java.

Un ejemplo del uso de esta clase se puede encontrar en: Ejemplo con Dibujo.

Resumen de las operaciones de Dibujo.java:
 
new  Dibujo(titulo) Constructor con tamaño 640*480
new  Dibujo(titulo,ancho,alto) Constructor con tamaño definible (en pixels)
espera() Hace el dibujo y espera a que se pulse OK.
pinta()
Hace el dibujo de forma inmediata, sin esperar
ponColorLapiz(color) Pone el color del lápiz con el que se pinta.
ponGrosorLapiz(grosor)
Pone el grosor del lápiz, en píxeles
ponRelleno(color) Pone el color del relleno de las figuras cerradas
ponLetra(tamaño) Pone el tamaño de la letra del texto dibujado
borra() Borra el dibujo poniendo el fondo gris claro.
borra(color) Borra el dibujo poniendo el fondo del color indicado
dibujaTexto(texto, xOrigen, yOrigen)
dibujaPunto(x,y)
dibujaLinea(xOrigen,yOrigen,xDestino,yDestino)
dibujaLineas (x[],y[]);
dibujaRectangulo(x1,y1,x2,y2)
dibujaElipse(x1,y1,x2,y2)
dibujaArco(x1,y1,x2,y2,angulo1,angulo2);
dibujaPoligono(x[],y[])
dibujaImagen(xOrigen,yOrigen,nombreFichero)
Operaciones de dibujar.

8. Grafica

Los objetos de la clase Grafica proporcionan un área para dibujar varias gráficas bidimensionales a partir de conjuntos de puntos. También proporciona un botón OK para que el programa pueda esperar a que el usuario finalice de visualizar la gráfica.

Cada gráfica tiene un conjunto de puntos con los siguientes atributos:

Se proporcionan operaciones para añadir puntos, o cambiar cada uno de los atributos. La operación otraGrafica() se usa para finalizar la gráfica actual y comenzar una nueva gráfica sobre la misma ventana.

La descripción de la clase está en Grafica.java.

Un ejemplo del uso de esta clase se puede encontrar en: Ejemplo con Grafica.

Resumen de las operaciones de Grafica.java:
 
new Grafica (TituloGrafica, TituloEjeX, TituloEjeY) Constructor que pone los títulos
inserta(x, y) Inserta un punto en la lista. Los puntos deben estar ordenados por el eje X
pinta() Muestra los ejes y la gráfica; luego, espera a que se pulse el botón OK y cierra la ventana
otraGrafica() Comienza una nueva gráfica con los mismos ejes. Se puede usar un unico pinta() para todas las gráficas
ponColor(int 0 a 3) Se puede elegir negro, rosa, azul o rojo (hay constantes estáticas disponibles para usar nombres en vez de numeros)
ponSimbolo(boolean) Pone (o quita) los símbolos en la grafica actual. El símbolo se deduce del color .
ponLineas(boolean) Quita o pone la opción de pintar la gráfica con líneas. Normalmente la opcion de líneas está activa 
ponTitulo(String) Pone el título de la gráfica actual

9. CajaTexto

Los objetos de la clase CajaTexto proporcionan: La descripción de la clase está en CajaTexto.java.

Un ejemplo del uso de esta clase se puede encontrar en: Ejemplo con Lectura/Escritura.

Resumen de las operaciones de CajaTexto.java:
 
 new CajaTexto (String s,
   int filas, int columnas)
Constructor, con el título de la ventana, y las filas y columnas del área de texto (medidas en caracteres)
 void espera () Espera a que el usuario teclee texto y pulse aceptar; se coloca en la primera línea del texto.
 void esperaYCierra () Igual que espera, pero ademas cierra la ventana al aceptar; se coloca en la primera línea del texto
void reinicia()
Se coloca en la primera línea del texto
boolean hayMas()
Retorna un booleano indicando si hay más lineas por leer o no
double leeDouble () Lee un double de la linea actual
int leeInt () Lee un int de la linea actual
String leeString () Lee un String de la linea actual
void avanzaLinea()
Avanza a la siguiente linea
double leeDouble (int pos)
Lectura de numeros en columna. Lee el double que ocupa la posicion pos en la linea actual; los números se separan con espacios en blanco; el primer número es el de pos=0.
int leeInt (int pos) Lectura de numeros en columna. Lee el int que ocupa la posicion pos en la linea actual; los números se separan con espacios en blanco; el primer número es el de pos=0.
void borra()
Borra el texto de la caja de texto
void println(String s)
Añade una linea con el texto indicado por 's' a la caja de texto

10. Cambios respecto a versiones previas

Versión 3.5:

Se ha corregido el fallo por el que no se mostraba el título de la ventana en la clase Grafica.

Versión 3.4:

Se ha modificado la clase Dibujo para permitir el acceso concurrente desde múltiples threads.

Se ha mejorado la clase Grafica para que los rótulos de los ejes queden dentro de la ventana y para añadir más información numérica y gráfica a los ejes.

Versión 3.3:

Corregidas las excepciones de acceso concurrente al hacer dibujos animados con la clase Dibujo

Añadido un atributo para que el lienzo sea limitado o no. Cuando el lienzo es limitado si se intenta dibujar fuera de él sale un mensaje de error. Si no es limitado, los elementos que estan fuera del dibujo se ignoran.

Versión 3.2:

Corregido un fallo en Dibujo.java por el que las imágenes se pintaban con un tamaño equivocado.

Versión 3.1:

Se ha añadido la operacion pinta() a la clase Dibujo.java.

Versión 3:

Se han modificado todas las clases para utilizar el kit gráfico Swing de Java, en lugar del más antiguo awt.

Se ha añadido la clase MensajeSiNo.

Versiones anteriores:

Se ha añadido la operación reinicia() en la clase CajaTexto

Se ha corregido el método de dibujar polígonos, que antes dibujaba mal los polígonos cóncavos

Se ha añadido la clase CajaTexto, para poder leer texto multilínea

Se ha corregido la descripción de los métodos de la clase Dibujo, ya que había algunos errores.

Se ha adaptado la implementación a la versión de Java 1.5, que incluye genéricos.

Se han añadido varios mensajes de error para facilitar el uso.

La clase Grafica tiene ahora botones de OK y Cancelar, iguales a los de otras clases. La operación pinta() se ha modificado para que espere al botón OK.

Se ha añadido la nueva clase Dibujo, con operaciones para hacer dibujos sencillos.

11. Descarga e instalación

El paquete fundamentos require Java 8 (JDK standard edition 8), que puedes encontrar en java.sun.com.

En caso de usar Eclipse o Bluej se recomienda hacer la descarga e instalación a partir de los siguientes enlaces:
Si utilizas el Bluej como entorno de desarrollo, hay que añadir el fichero fundamentos.jar a las librerías. Para ello elige la opción del menú tools=>preferences, y en la pestaña Libraries usa el botón add para añadir el fichero. Posteriormente hay que reiniciar el bluej.

Para descargar el paquete fundamentos para otros entornos, seguir este enlace:
Descarga el  fichero elegido y descomprimelo en un directorio de tu elección (directorio-instalacion). Esto creará un subdirectorio llamado "fundamentos" dentro de directorio-instalacion. Acordarse de poner el "directorio-instalacion" en la variable CLASSPATH que usa el compilador para encontrar las clases.