sábado, 19 de febrero de 2011

Jigloo

Mirando un poco en la red, he encontrado un GUI para hacer aplicaciones con interfaz gráfico en Java, que además integra con Eclipse.

Para instalar el pluggin en Eclipse solo hay que ir a Help -> Install new Software y añadir el siguiente repositorio:

http://cloudgarden1.com/update-site

Para poder usar el GUI, simplemente añadir con File -> New -> Others -> GUI Forms

Iremos contando qué tal :)

viernes, 18 de febrero de 2011

Ventanitas

El inicio de Swing me ha recordado a los inicios con fltk... es la posibilidad de abrir el "hola mundo" al "hola ventana".

Aunque se haya visto que se hace todo con instrucciones "a pelo", me imagino que llegaremos a ver algún tipo de IDE que nos ayude a organizar nuestras ventanitas tal y como se puede hacer en otros entornos (Visual Studio, Gambas, Mono...).

Tiempo al tiempo, Android, espérame ;)

jueves, 17 de febrero de 2011

Agenda acabada!!!

Pues he subido ya el entregable de la agenda en el aulavirtual.

Después de una semana horrible casi sin dormir, y teniendo que pedir día de fiesta en el curro hoy, la doy por subida, y si luego me apetece cambiaré algunas cosas que creo que se podría mejorar.

Únicamente no he conseguido generar la documentación... no encuentro en el synaptic el javadoc!!!

Pues eso... esta tarde siestecita :P

miércoles, 16 de febrero de 2011

Posdata

Acuérdate de hacer un backup del proyecto...

Borrar en array

¿Qué pasa si borramos elementos de un array mientras lo consultamos con un for each?

Pues que si coincide que es el último elemento del array, el foreach no lo reconoce y se ríe de nosotros!!!

Total... siempre podemos guardar una referencia a dicho elemento de la array, y borrarlo luego :)

Esos errores tontos...

...de los que no se aprende.

Llevo bastante (por no decir mucho) rato buscando un error de implementación en las clases y las interfaces, idas y venidas de código, desesperación, frustración...

Cuando agregaba contactos a la agenda, me devolvía continuamente error de puntero a nulo, pero acabo de localizarlo!!! el problema no estaba en las clases ni las interfaces, sino en la función que tenía (para por cierto) preparada para leer desde fichero, algo parecido a esto:

Agenda aAgenda = new Agenda();

aAgenda = funcionqueabreelfichero();

y la funcionqueabreelfichero, si no encontraba un fichero válido, se inicializaba a null.

Total, cuando insertaba elementos la máquina virtual me miraba mal y me decía del mal que tenía que morir.

Moraleja: soy idiota...

martes, 15 de febrero de 2011

Perfilando la agenda

Al final, parece que me ha quedado clara la estructura que debe seguir la agenda del entregable de la primera parte del curso...

Dos clases, Persona y Empresa, que tienen una interfaz ObtenerDatos.
Dos clases, PersonaExt y EmpresaExt, que son hijas de Persona y Empresa (respectivamente) y que tienen una interfaz ObtenerDatosExt que es hija de ObtenerDatos.

Y de todo esto, tenemos una clase Agenda que implementa ObtenerDatosExt.

Si he entendido todo el proceso (espero que si), ObtenerDatosExt puede acceder, por ser hija, a los métodos de ObtenerDatos, que además al ser interfaz de Persona y Empresa, nos "abre" las puertas a sus métodos.

A su vez, tenemos PersonaExt y EmpresaExt, a través de las cuales, y por ser sus hijas, accedemos a sus métodos.

La clase Agenda es la que se encarga, en tiempo de ejecución, y con un arraylist de ObtenerDatosExt, la de determinar si el objeto que se le está pasando es un PersonaExt o EmpresaExt.

Al final, mi primera solución al problema, de la que desconfiaba (y con razón, tenía que sacar métodos propios de la clase en el propio main), no tenía nada que ver con el entramado en que ha acabado.

No se si estará bien o mal mi planteamiento, pero como necesito dormir antes de irme a currar... mañana será otro día.

Próximo reto: definir las excepciones, aclarar la función de la edad y documentar!!!

lunes, 14 de febrero de 2011

Errores en Eclipse

Cierto es que Eclipse es una herramienta muy potente, pero también es cierto que cada vez me pone más de los nervios

1º Su forma de indentar "si o si", y
2º Me da mensajes de error cuando no los hay, y me toca marear la perdiz para que refresque

En fin... con lo 2º quizás haré poco... pero investigaré si hay alguna forma de que me deje de indentar de esta forma.

¿Cómo indentáis vosotros?

Yo soy partidario de

static void main()
{
// código
}

viernes, 11 de febrero de 2011

Final

Y le dice un campo final a otro...

VF1: "Oye, y tu porqué no te inicializas?"
VF2: "pse... luego, que ahora no me apetece..."
VF1: "cuanta pereza!!"

jueves, 10 de febrero de 2011

Primera semana

Pues la verdad, ha sido un arranque tremendo de curso, lo que unos añitos atrás fue un semestre, ha sido una semana, que aunque no sean conceptos nuevos, hay que refrescarlos y recordarlos.

Ciertamente el ritmo del curso da miedo, y temo no llegar a poder abarcar todas las lecturas a las cuales hace referencia la guía de aprendizaje (a no ser que deje de dormir).

Todo sea por una buena causa!!

Fibonacci

Recordando esquemas algorítmicos...

int F(n)
{
if (n==1) return 1;
if (n==2) return 2
else return F(n-2)+F(n-1);
}

martes, 8 de febrero de 2011

Sí señor

"S\u00ED se\u00F1or"

Ha pasado un rato hasta que lo he entendido... no comments

Los arrays!

Pues con el cacao que llevo encima... me acabo de encontrar con el problema de que, intentando declarar un array del tipo String, el compilador me devolvía un error.

Seguramente es algo que estará en las transparencias del curso... pero no me acordaba, y me ha tocado echar mano del Sr. Google.

Para poder definir una matriz de cualquier tipo de datos, debemos tratar dicha matriz como un objeto:

Tipo_datos variable[] = new Tipo_datos [dimension];

Lo tendré en cuenta para la próxima!!!