Contenedores (agrupan controles)
Layouts (establecen el orden de los componentes)
Componentes (elementos gráficos)
Se producirán eventos (ratón, teclado), que serán recibidos por los Listeners que lanzarán el Handler (manejador) con el código a ejecutar:
EVENTO(ActionEvent), OYENTE(ActionListener), MÉTODO(actionPerformed), COMPONENTES(JButton)
CONTENEDORES:
-JWindow: Ventana sin título ni borde
-JFrame: Marco con borde y título. Puede tener una barra de menú.
-JDialog: Ventana completa propia que no puede existir sin un JFrame como padre.
-JApplet: Permite crear un applet swing (aplicaciones web java que se ejecutan en el navegador).
-JPanel: Contenedor intermedio genérico de Componentes.
.getContentPane() permite acceder al padre y add(boton) le añade componentes.
LAYOUTS:
-BorderLayout: colocamos los elementos en North, South, East, West, y Center. Es el Default de JFrame y JDialog.
-GridLayout: se colocan en una rejilla de dimensiones x*y
-FlowLayout: los elementos van seguidos en fila uno tras otro.
-NullLayout: tenemos que especificar a mano las coordenadas de cada componente.
COMPONENTES: javax.swing.JComponent es la clase base de Swing
JLabel: setText(), setFont()
JButton: produce ActionEvent, addActionListener(actionPerformed que implemente la interfaz ActionListener)
JTextArea, JTextField, JPasswordField: campos para escribir líneas, textos o contraseñas. getText() y setText()
JComboBox: desplegables con elementos para seleccionar. setEditable(bool). Igual que JButton= ActionListener, addActionListener(), actionPerformed()
JList: Listas de items para seleccionar uno o varios. Produce ListSelectionEvent->addListSelectionListener()->valueChanged()
JScrollPane: desplazador para moverse por mas contenidos.
JCheckBox: Cuadrados marcables, producen ItemEvent->ItemListener->itemStateChanged(), addItemListener()
JRadioButton: Selectores de opciones únicas, se agrupan en ButtonGroup.add(), funcionan igual que botones.
.setToolTipText("texto info") para añadir una nota emergente con información.
Menus:
JMenuBar: la barra en la que se colocan los menus
JMenu: componente menu que al ser pulsado desplegará opciones. addSeparator()
JMenuItem: Cada elemento que contendrá el menu. Igual que los botones
JToolBar: Barras de Herramientas movibles y acoplables, con JButton con texto o iconos. addSeparator()
JTabbedPane: tendrá pestañas que contendrán JPanel con contenido. addTab(), setSelectedIndex()
-JFileChooser: nos permite la selección para apertura o guardado de un fichero. Es modal, con showOpenDialog y showSaveDialog().
-JFormattedTextField: permite forzar formatos básicos en texto mediante máscaras (fechas, monedas) en conjunto con InputVerifier.
-JSpinner: rota entre unos valores con un orden mostrando únicamente uno. SpinnerListModel(array), SpinnerNumberModel para números y SpinnerDateModel para fechas.
-JTable: Tablas para mostrar datos en una rejilla de columnas y filas. Se construyen con arrays y permiten edición.
-AbstractBorder: implementa interfaz Border y permite marcar bordes.
JOptionPane: para mostrar diálogos de opciones, se captura el resultado y se analiza.
.showConfirmDialog( Si, No, Cancelar)
.showInputDialog( recoge un texto en un textbox y lo devuelve)
.showMessageDialog( para errores, avisos, información)
.showOptionDialog( combinación de los 3 anteriores)
*Podemos determinar el aspecto de la aplicación (metal, motif, windows) con:
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel";
viernes, 11 de mayo de 2012
Resumen Java Tema Excepciones
Excepción: error que detiene la ejecución. Lanza un objeto que podemos capturar con try{...}catch(Exception ex){...} y asi fortalecer, estabilizar y preparar la aplicación para recuperarse en casos de error.
Si se produce en un método y no es capturada escalará hasta el método que lo llamó recursivamente, y si no es capturada nunca, detendrá la ejecución.
try { Envuelve el código que podrá lanzar excepciones, las captura y se las pasa al manejador catch adecuado. }
catch { Puede haber varios, del mas específico al mas general, y es lo que se ejecutará en caso de error }
finally { Esta porción de código se ejecutará SIEMPRE, haya error o no, es útil para cerrar conexiones y flujos }
throw new Exception(): permite lanzar manualmente una excepción (tiene que heredar de Throwable)
public void método throws xException: indica que el metodo puede producir x excepciones y no las controla.
Throwable (padre)
-Error (hija) errores fatales no recuperables.
-Exception (hija) errores de los que se puede recuperar. getMessage(), printStackTrace()
Se pueden crear hijas de Exception para hacer excepciones personalizadas.
Tipos comunes: ArithmeticException, NullPointerException, ClassCastException, NegativeArraySizeException, ArrayIndexOutOfBoundsException, NoClassDefFoundException
Si se produce en un método y no es capturada escalará hasta el método que lo llamó recursivamente, y si no es capturada nunca, detendrá la ejecución.
try { Envuelve el código que podrá lanzar excepciones, las captura y se las pasa al manejador catch adecuado. }
catch { Puede haber varios, del mas específico al mas general, y es lo que se ejecutará en caso de error }
finally { Esta porción de código se ejecutará SIEMPRE, haya error o no, es útil para cerrar conexiones y flujos }
throw new Exception(): permite lanzar manualmente una excepción (tiene que heredar de Throwable)
public void método throws xException: indica que el metodo puede producir x excepciones y no las controla.
Throwable (padre)
-Error (hija) errores fatales no recuperables.
-Exception (hija) errores de los que se puede recuperar. getMessage(), printStackTrace()
Se pueden crear hijas de Exception para hacer excepciones personalizadas.
Tipos comunes: ArithmeticException, NullPointerException, ClassCastException, NegativeArraySizeException, ArrayIndexOutOfBoundsException, NoClassDefFoundException
domingo, 8 de abril de 2012
Critica REC3: Genesis
Sí, Quiero.
El martes hice una escapada nocturna con mi compadre de fechorías y por primera vez en este 2012 fuimos al cine.
El motivo: REC 3, GENESIS, la tercera entrega de la que en mi opinión es la mejor saga que ha parido el cine español, aunque solo se me viene a la cabeza Torrente en contrapunto.
El caso es que tras encantarme la primera parte, y maravillarme la segunda, esta tercera y penúltima en la saga me ha fascinado.
REC 3 Génesis Trailer 1
La temática de la boda, con la que conectas de inmediato, te mete de lleno en la situación. Todos hemos estado en una, todos hemos vivido esas situaciones. Y el hecho de presentar la cinta como las grabaciones profesional y amateur del evento, añade al juego un toque aun más divertido.
Y como yo siempre digo, si al final (o en este caso al principio) se casan, me encanta. Pese a ser una cinta de zombis/terror, el romance es la parte más importante de la historia. Es el hilo conductor, el motor de los personajes, y es tan bonito, intenso y en ocasiones incluso cursi, que no pude evitar echar más de una lagrimilla. Y es que para mí, donde haya una buena historia de amor (y no, los triángulos no son amor, son vicio) como en El cuervo o en Matrix, apoyando personajes, motivos o arcos, la historia gana enteros. En esta ocasión la historia de amor es sencilla y efectiva y está en su punto álgido, dos personas que se quieren con locura, en el día de su maravillosa boda.
Y al fin y al cabo las películas dependen de sus personajes, y normalmente la mitad o más me suelen caer mal, o restan puntos hasta tal punto que acaban todos con la cuenta en negativo. Sin embargo en REC3 Génesis, me sucedió al contrario. Todos los personajes, empezando por los novios, pasando por los amigos, familiares, cámaras, extras (John, Canon y el cura) con geniales. En lugar de cometer una estupidez tras otra (que puede haberlas al estar dirigidos por su corazón), en casi todas las ocasiones hacen lo que yo haría. Armarte con lo que puedas, plantar cara cuando no te queda otra, y huir como cobardes.
Pese a ser una cinta de terror tiene algunas secuencias de acción memorables (+20 puntos para Leticia Dolera por ello), que aunque pocas, se convierten instantáneamente en secuencias a recordar e imitar.
Y no solo de sustos y amor vive el friki, la REC3: Génesis dispone de unos pocos, localizados y más que efectivos puntos cómicos que me encantaron. Relajan un poco la tensión (que pronto vuelve) y al estar colocados en los momentos adecuados no destrozan el drama ni descolocan, hacen reír y algunos tienen auténticos dobles sentidos (¡¡Puto Canon!!).
Lo que no puede faltar en una peli de Zombis, aunque sea de la sub rama de los infectados/poseídos, son mis queridos zombis. En esta ocasión podemos disfrutar de un curioso tipo de zombi, el zombi de gala, ataviado con chaqués, vestidos, tacones y tocados. Creo que es la primera que veo en la que se utilizan, y son ciertamente refrescantes. Tienen las habilidades de los de las anteriores entregas, mas espacio abierto y libertad de movimientos y cumplen con eficacia su función. Incluso nos permiten descubrirles un punto débil, algo que supongo será útil en la próxima y última (?) entrega.
Mención especial a la banda sonora, plagada de temas románticos y casaderos, es pegadiza, está bien situada, y hoy no me puedo sacar de la cabeza el Eloise del gran Tony Casal. Un total acierto.
La fotografía del film me dio la sensación de estar cuidada, no detecté fallos de racord, y algunos encuadres eran espectaculares, jugando muy bien con los recursos de lluvia, nocturnidad e interiores. El tránsito por primera vez de cámara en mano a cámaras fijas profesionales está muy bien realizado, es gracioso, tiene sentido, y da pie a un nuevo tipo de narración en la saga.
El director Paco Plaza sabe lo que quiere hacer, cuenta una historia ágil y divertida dentro de su RECverso, nos aporta algo (poco) mas de información, y nos entretiene con un espectáculo salpicado de referencias a las anteriores entregas, al género en general, con un buen ritmo que no decae en ningún momento.
Una gran película de zombis, una buena historia romántica, y una estupenda película española.
Así no me importa pagar por ir al cine. Le otorgo un merecido 9 sobre 10.
¡Hoy es mi díaaa!
lunes, 20 de febrero de 2012
lunes, 13 de febrero de 2012
Para mí el año 2011 ha sido...
Intenso, duro y muy difícil.
No me puedo quejar ni me quejo porque tengo salud, tengo
trabajo y estoy estudiando, pero ha sido un año en el que no he tenido
vacaciones, en el que mis jornadas han ido creciendo por momentos hasta rozar
lo absurdo, y en el que mi tiempo de ocio ha ido desapareciendo hasta
convertirse en algo anecdótico o en un mero recuerdo. Los fines de semana se
llenaron primero de trabajos freelance, después de la traducción que estoy
haciendo al español de la ROM de Final Fantasy VI de SNES, y posteriormente de
estudio, prácticas y trabajos.
![]() |
| Una gran compañera y muchisimos recuerdos me dieron mis 18 meses de Apolo Media. |
Y cuando no podía dar más de si mi agenda me apunte a la
Universidad.
En concreto estoy cursando un Grado en Sistemas de Información
en la Universidad de Alcalá, y es una mezcla de informática y Administración y
dirección de empresas que me convenció por que a diferencia de las ingenierías
no tenia física y tan solo una asignatura de matemáticas, y no cinco.
Por este motivo tuve que sacrificar lo poco que quedaba de
mi ocio y vida social que transcurría los sábados en mi casa con mis
frikolegas, y le dedique por completo el fin de semana al estudio. Tuve también
que comenzar a dormir menos, porque 7 horas al día es un lujo, y no estaba para
lujos la situación. Con 4 o 5 horas tendría que apañarme.
Y es que para celebrar mi año de la buena suerte comencé mi
primer cuatrimestre con Matemáticas y Fundamentos de Tecnología de computadores
(de ahora en adelante circuitos).
Si, yo que la última vez que aprobé matemáticas fue en 7º de
E.G.B., y que me metí en un Bachiller de Humanidades (letras puras) por que no tenía
ni idea, y yo que prácticamente no se sumar mas allá de cantidades que quepan
en los dedos de las manos.
Fue mortal, estresante, depresivo y agotador, porque para
colmo tienes que tener la base de los bachilleratos de ciencias, pero estaba
decidido a ver hasta dónde podía llegar, y sacrificando cualquier buen rato,
momento feliz o de descanso durante 4 meses, y con la inestimable ayuda de los
señores Christian y Daniel y de la paciencia, tiempo, esperanza y lecciones del
Gran Jon, con demasiadas horas de tutorías y mas videos de youtube de los que
he visto en toda mi vida, y sin la mas mínima esperanza de aprobar en el primer
año, hice todo lo que pude, al menos con el tiempo que mi trabajo a jornada más
que completa me permitía.
Y por fin, aunque sucediese en 2012, tras perderme varias
vacaciones y la navidad, y con el TOC por las nubes, conseguí, no sin ayuda de
los profesores, ¡¡¡¡un 5.0 en matemáticas y un 9.0 en circuitos!!!!
Aun no lo he asimilado y no he podido disfrutarlo, pero el
caso es que (creo) que ha sucedido. Lo he logrado y casi no le puedo pedir más
a esta vida (aunque ya lo esté haciendo claro....).
En 2011 también perdí a mi última abuela y madrina Isidora
Gómez. Siempre es triste una pérdida así pero cuando las personas alcanzan una
cierta edad (90+) y tienen una serie de problemas de salud uno está preparado
para que la naturaleza siga su curso. Y sirvió para reunir a toda la rama de la
familia donde conocí a tíos y primos que no había visto nunca, y a familiares
que hacia más de 15 años que no veía.
Pero también ha sido un año en el que he (re)conocido a
buenos compañeros de trabajo (MC, Veiga y Roberto, sois la repera!!), y he
tenido la suerte de coincidir con unos colegas de clase estupendos (Jon, te
debo muchísimo) y unos comprensivos amigos que no me recriminaron el
abandonarlos y desaparecer durante los cuatro meses de clase. Por ello a todos
les agradezco enormemente el apoyo, la compañía, el tiempo y la paciencia.
¡ARIGATO!
En resumen ha sido un año sin descanso, sin casi buenos
momentos y sobrecargado de trabajo, responsabilidades y más trabajo, la mayoría
no remunerado. Pero lo he conseguido terminar con vida, he tenido un éxito
moderado en la universidad, y vuelvo a tener un contrato indefinido, que le da
a uno cierta tranquilidad. Y pese a que no se cuanto tiempo podre aguantar a
este ritmo, lo cierto es que cuando conviertes el límite en rutina, no se hace más
agradable pero si más llevadero. Cuesta más levantarse un día a las 5 de la
mañana que todos los días, y cuesta más doblar turno un día que hacerlo por
norma todos los días.
![]() |
| Estudiar estudiar, en la universidar! |
Valoración del año 2011: 6 sobre 10 ;P
lunes, 7 de noviembre de 2011
Receta de Bizcocho de Naranja casero
Hace poco mi madre, que se esta especializando en postres y bollería caseros, hizo un bizcocho de naranja que estaba para desmayarse.
Como le hemos comprado un Samsung Galaxy Mini y la estamos enseñando a utilizar el correo electrónico, conseguí que escribiera la receta y me hice con una copia.
Si consigo que le haga fotos a los ingredientes y al resultado, iré publicando aquí sus recetas, lo cual es una inesperada pero deliciosa novedad para el korcho.
Ingredientes:
Una naranja de zumo de piel fina
70ml de Aceite
250gr de Azúcar
3 Huevos
170gr de Harina
1 sobre de Levadura
Preparación:
Triturar todo con una batidora menos la harina y la levadura, triturar la naranja con piel incluida, poner en un bol e incorporarle la harina y la levadura.
Ponerlo todo en un molde engrasado y desmoldable.
Al horno 180 grados, con calor en la parte inferior, durante 40 minutos aproximadamente.
¡¡Itadakimasu!!
Como le hemos comprado un Samsung Galaxy Mini y la estamos enseñando a utilizar el correo electrónico, conseguí que escribiera la receta y me hice con una copia.
Si consigo que le haga fotos a los ingredientes y al resultado, iré publicando aquí sus recetas, lo cual es una inesperada pero deliciosa novedad para el korcho.
Ingredientes:
Una naranja de zumo de piel fina
70ml de Aceite
250gr de Azúcar
3 Huevos
170gr de Harina
1 sobre de Levadura
Preparación:
Triturar todo con una batidora menos la harina y la levadura, triturar la naranja con piel incluida, poner en un bol e incorporarle la harina y la levadura.
Ponerlo todo en un molde engrasado y desmoldable.
Al horno 180 grados, con calor en la parte inferior, durante 40 minutos aproximadamente.
¡¡Itadakimasu!!
viernes, 4 de noviembre de 2011
Lo que bien empieza...
Acabo de recibir la nota de mi primer examen en la
universidad y he conseguido hacerlo bien, la puntuación máxima eran 2 puntos y
los he conseguido.
Para empezar me da ánimos, y fuerzas para seguir
sacrificando las noches y los fines de semana, pero por otro lado, el tema era
los sistemas de numeración, cosa que ya aprobé con un 10 en el ASI hace 8 años.
Y lo peor de todo es que el siguiente examen es de matemáticas, y por más que
estudio, no consigo controlar ningún tema, y ya llevamos 3 temas. He aprendido muchísimo,
eso sí, pero me faltan años y años de cálculo y de memorizar tablas absurdas
que no voy a usar en nunca más en mi vida.
Sé que en este examen de mates lo máximo que puedo aspirar
es a sacar un 2 sobre 10, si lo consigo ya será un logro, pero me da rabia
invertir tanto esfuerzo y tiempo que no tengo en una asignatura para no
superarla. Y todo el tiempo que le dedique es tiempo que le quito a circuitos.
Pero voy a seguir exprimiéndome al máximo y lo que sea será. Nunca conté con
aprobar matemáticas, así que no me hundiré si no la saco. O eso pretendo.
Y de paso le doy las gracias a todos mis compañeros que me
han ayudado, los que me han explicado cosas y los que han pasado horas explicándome
factorizaciones, funciones, limites, derivadas e integrales. Jon, Daniel y
Cristian, ¡MUCHAS GRACIAS!
Suscribirse a:
Entradas (Atom)




