Últimas entradas del blog

276 entradas

¿Qué es un Bean de Java?

Qué es Podemos ver por todos lados la palabra Bean, significa vaina en inglés, y le he leido en los lugares más variopintos. Desde el NetBeans, los Java Beans, los Beans en Visual Studio, Eclipse, los Enterprise Java Beans, los Beans que usamos para acceder y guardar datos de nuestros programas. Pero ¿qué es un Bean? Es una clase destinada a almacenar una cantidad de datos para nuestro programa. Su fin es encapsular información, para reutilizar código fuente, estructurando el código fuente en unidades lo más sencillas posible. Ejemplo Con un ejemplo se ve bien sencillo, supongamos que queremos un programa que va a almacenar información sobre personas. Lo primero que debemos de empezar es creando una clase Persona, por ejemplo: public class Persona implements Serializable { private int id; private String nombre; private String apellido1; private String apellido2; private String direccion; private String email; private String telefono; public Persona() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getApellido1() { return apellido1; } public void setApellido1(String apellido1) { this.apellido1 = apellido1; } […]

SQLite con Java

Hoy les dejo un acceso a una base de datos SQLite, que últimamente está tan de moda. SQLite se usa en todo tipo de programas, es de dominio público, se puede incluir en tu programa añadiendo alguna librería muy ligera, y te da casi todas las funcionalidades que te puede dar cualquier otra BD relacional (de las que usan SQL). Materiales Una vez más, mi entorno de desarrollo favorito, el Eclipse que supongo ya instalado. También se puede seguir el post usando otro entorno http://www.eclipse.org/ Una librería hecha por completo en Java para usar SQLite, un tal Taro L. Saito, de Xerial nos deja en su repositorio para descargar en https://bitbucket.org/xerial/sqlite-jdbc/downloads El JDK instalado http://www.oracle.com/technetwork/java/javase/downloads/index.html   Un poco de teoría Lo que he averiguado en mis investigaciones, más que nada con lo que me han explicado amigos, es que SQLite lo que no tiene son claves ajenas, con lo que la integridad referencial no está implementada dentro de su llamemosle “motor de la BD” es que tenemos integridad referencial, claves ajenas. Se pueden usar disparadores (triggers), cuando se hagan inserciones, modificaciones o borrados. Podemos usar BLOBs, definir los tipos de datos de las tablas, y un largo etcétera… Según pone en […]

Java hasta la médula de Linux

Un día más, curioseando con mi Eclipse, probando a ver si ponía en marcha EGit para usar repositorios Git llego a encontrar un curioso proyecto que está llevando a cabo Pekka Enberg. Pekka es un ingeniero finlandés que dirige el Jato: a JIT-only virtual machine for Java. Que viene a ser un compilador de Java pero que va incluido como un módulo del Kernel de Linux. Viene a ser una implementación “open source” de la máquina virtual de Java, dando soporte a la especificación Java SE Edición 7. Antes de la versión 7 de Java, Linux no debía incluír la máquina virtual de Java en sus distribuciones. En la versión 7, lo que se ha hecho con Java principalmente es extraer de la máquina virtual las librerias propietarias, dejando sólo las librerías de las que se tiene el código fuente, que no son propietarias y son gratuitas, con lo que ya se puede usar la JVM como si de un programa GNU fuera, resumiendo a groso modo. Éste era un sueño que tenía Sun antes de su desaparición por ser absorbida por la macroempresa Oracle. Al final muchos propietarios de las librerías han liberado sus códigos y otros, reticentes, han […]

Sin tiempo…

Un panadizo, una mudanza, una desconexión total a Internet después…  y ya estoy por aquí de nuevo. Estos últimos días han sido demasiado cortos como para tener tiempo para escribir algún post, no me he olvidado ni he decidido dejar de escribir, si no que no ha sido posible aunque he estado buscando tiempo de debajo de las piedras para poder seguir escribiéndoles. He visto que las visitas han seguido subiendo, parece ser que los post han sido, por lo menos algo interesantes. Ésto me anima mucho a seguir, así que espero pronto poder dedicar algo más de tiempo al Blog, que le estoy cogiendo el gusto a esto de escribir en un Blog.. xDD Un saludo.

Java Swing 8: El JTree

Volviendo de nuevo con un nuevo post sobre Swing, esta vez os dejo un componente un poco más complicado de entender, el JTree. Su uso con el Swing Designer es bien simple de ponerlo en un frame y dibujar su interfaz, pero cuando entremos en su estructura que tenemos para manejarlo necesitaremos tener conocimientos de lo que es un Tipo Abstracto de Datos (TAD para los amigos), y en concreto lo que es un árbol. Lo que se puede hacer y cómo se estructura internamente lo supongo por entendido. Si no es el caso mejor empezar por ver ésto, sino lo de a continuación puede convertirse en un jeroglífico. http://es.wikipedia.org/wiki/Tipo_de_dato_abstractoBúsqueda en Google sobre TADs árboles Construyendo el escenario Para éste tutorial he utilizado Eclipse Juno y la versión 7 update 9 del JDK. Lo primero es crear, dentro de Eclipse, en la ventana del explorador de proyectos, un nuevo proyecto de Java. Luego crear un nuevo JFrame con el asistente de Eclipse y ya tenemos el esqueleto del programa listo para empezar. Yendo al diseñador de formularios del Swing Designer le añades un Absolute layout al formulario para poder posicionar los componentes donde quieras del formulario, y entonces para éste […]

Java Swing 7: Formateando textos

¡Hola de nuevo! El tiempo pasa y no vuelve, el valor más preciado que tenemos, cuando a uno le falta es cuando lo tiene en cuenta. Estoy sacando tiempo de debajo de las piedras para seguir escribiéndoles. Vienen días de tormenta, hace mucho viento, parece que llueve pero no llueve, la prima de riesgo sube y baja, los políticos siguen con sus historias, y yo sigo con lo mío, así que aquí hoy os dejo algo más sobre Swing. En concreto sobre componentes para dar formato a textos y algo más. En éste minitutorial, voy a dar un repaso a los componentes que sólo admiten cierto tipo de valores como los JFormattedTextField. Otro componente interesante, el JEditorPane, que admite por defecto tres tipos de contenido: el texto plano normal y corriente de siempre (text/plain), texto enriquecido (text/rtf), o un documento en HTML (text/html). Y otra caja de texto, el JTextPane, que admite incluso otros componentes Swing como etiquetas, botones, etcétera… Para éste post he utilizado la versión JDK 7 update 9, y Eclipse Juno EE con el plugin Swing Designer. JFormattedTextField Éste componente hereda del JTextField, con lo que tiene los mismos métodos y se usa de manera parecida. La […]

Los Reyes Magos les habian traido virus a los de Oracle

Parece ser que los Reyes Magos les han traido virus al final a los de Oracle, ¿tan malos han sido en 2012? Antes de nada gracias por la información que me habeis enviado sobre el problema que corría últimamente por Internet sobre Java. Se estan llenando los titulares de la noticia, con contenidos tremendistas haciendo eco de las resoluciones de los expertos recomendando desinstalar incluso completamente Java de nuestras máquinas: http://www.fayerwayer.com/2013/01/se-recomienda-desinstalar-java-ahora-mismo-tras-el-descubrimiento-de-grave-vulnerabilidad/ http://www.20minutos.es/noticia/1698519/0/recomiendan/desactivar-java/fallo-seguridad/ Java viene a ser el lenguaje más utilizado en programación de los últimos años, y como no, cualquier noticias de ésta índole llama mucho la atención. Java está en el punto de mira de muchos, su máquina virtual está instalada en muchos dispositivos, y sus programas se pueden ejecutar en todos lados. Si te pones en la piel de un virus, lo mejor que querrías tener es tener tu código precompilado en bytecodes compatibles con la JRE para poder ejecutarte en toda máquina compatible con Java. Pues ésto es lo que ha pasado. Y viene pasando últimamente cada vez más. Pero me he molestado un poco en investigar y quitarle un poco de leña al fuego, averiguando en que consiste exactamente ésta vulnerabilidad. http://www.genbeta.com/seguridad/una-vulnerabilidad-de-java-no-resuelta-compromete-la-seguridad-de-nuestros-equipos http://www.torontosun.com/2013/01/12/java-security-fixing-coming-shortly-oracle-corp Resulta que el […]

Mozilla Firefox: el zorro cada vez más rápido

Cuanto más leo más me sorprende su historia y rumbo que llevan los desarrollos, tanto de la Fundación Mozilla, como en concreto, de su caballo de batalla, el Mozilla Firefox. Hoy he actualizado a la versión 18 del Firefox y me he puesto manos a la obra para éste post. Desde el Netscape, rivalizando con el Internet Explorer y con Chrome también, viene a ser un caso de estudio y una opción nada desechable. En algunos desarrollos, tratando de seguir al 100% los estándares del Consorcio W3 que dirigen el cotarro, me he llegado a encontrar con problemas a la hora de visualizar o con el funcionamiento de la interfaz por problemas de compatibilidad entre navegadores. Según el que utilizaba cambiaba su funcionamiento. Donde se alineaba a la izquierda o derecha en una tabla con columnas agrupadas, ahora se alineaba al centro en otro navegador; aparte de los clásicos problemas con el vídeo y sonido al usar HTML4, resulta que los navegadores toman por defecto unos valores u otros.  Total que acabo instalándome los principales navegadores para hacer las pruebas: Chrome Internet Explorer Mozilla Firefox Safari Opera …en orden de uso. Cabe indicar que si usas Windows se complica encontrar […]

Mapas conceptuales y construcción del conocimiento con Freeplane

Ya han venido los Reyes Majos, y os han dejado virus para los que habeis sido malos. Y para los que habeis sido buenos os han dejado un buen programa que curiosear, el Freeplane. A fecha de hoy la versión que tengo es al 1.2.20 del Freeplane, lo he probado con el JRE 7 en un Windows 7. Aún con mi edad sigo estudiando, sobre todo en la informática si no te actualizas frecuentemente te quedas obsoleto, desfasado, finito… He estado preparando unos exámenes en éstos días y he estado complicándome la vida un poco en buscar un programa que me sirva para organizar mis ideas. No soy vago a la hora de coger papel y lápiz para hacerme esquemas o resolver los problemas sobre el papel antes de pasarlos a limpio. Pero con todo lo que avanza las TI (Tecnologías de la Información), vienen siendo útil todos éstos programas que nos hacen la vida un poco más fácil. Como buen fan del software GNU, del gratuito, o de los programas con licencias o versiones gratuitas. Les presento el Freeplane para el que no lo conozca. Nació del archiconocido FreeMind, que a fecha de hoy anda un poco desactualizado. Viene […]

Java Swing 6: Los componentes básicos

¡¡Feliz Año Nuevo!! Hace ya un tiempo que no escribo, así que voy a tratar de que éste año sea mejor que el anterior y comienzo por avanzar en mis investigaciones con Java, así que os dejo éste post por si a alguien le sirve… Sigo escudriñando los componentes de Swing, a ver cómo son los más simples, que no faltan en cualquier programa. Si lo que buscas es aprender rápido lo necesario para usarlos, éste es tu post xD He utilizado la versión 7 del JDK y Eclipse Juno. Si vas a seguir éste tutorial desde cero, lo suyo sería que hicieras un nuevo proyecto, crearas un nuevo JFrame con el generador de código de Eclipse y fueras al Swing Designer. Es decir, entras al modo de diseño para editarlo intentando hacer algo como la imagen de arriba, usando las herramientas que ves aquí abajo: Queda cada vez menos componentes de los presentados en el post ‘Java Swing 1’. Así que vamos al grano. JLabel Es una etiqueta. Con el diseñador ponemos el texto en el valor text, se puede cambiar en el código con la función nombreEtiqueta.setText(“Cadena”); aunque en el código fuente del ejemplo se ha puesto el […]

Java Swing 5: Preparando el menú para estas Navidades…

¡Hola de nuevo! Estoy pegándole un repaso a todo lo referente a los menús con Swing usando Eclipse. No deja de sorprenderme lo fácil y rápido que lo tenemos una vez que te has familiarizado con Eclipse, y en concreto con el Swing Designer. En pocos minutos tenemos nuestro esqueleto de la aplicación listo para codificar sus funciones o encajarlo con códigos ya hechos, cada uno para lo que lo necesite… Para todo ésto he usado la zona del Swing Designer que vemos a continuación: Jugando con los componentes donde pone ‘Menu’ podemos hacer todo lo referente. Un JMenuBar es una barra de menús, es la típica barra de menús que sale normalmente en la zona de arriba de un programa con Archivo, Opciones, Ayuda, etcétera… Tenemos que poner uno en el JFrame para entonces, dentro de éste JMenuBar, podamos poner los JMenu o JMenuItem que queramos. Dentro de un JMenu podemos poner otros JMenu o elementos finales de tipo JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem o en especial el JSeparator que simplemente es una línea separadora como la siguiente después de ‘Poner título’: Luego tenemos otro tipo de menú que es el JPopupMenu. Se usa igual que el JMenuBar pero se pone […]

Java Swing 4: Pestañas

Para hacer un programa con pestañas repartiendo así los componentes se hace fácil con Swing y Eclipse. En pocos minutos, usando el generador de código esqueleto y con el Swing Designer te genera código. Antes de poner el código, a saber, con el Swing Designer lo que tendremos será la ventana vacía, para poder posicionar los elementos tenemos que añadir en medio un Absolute layout. Luego dibujamos donde va a ir con el JTabbedPane. Después tenemos que añadir dos paneles encima del JTabbedPane, es decir, dos JPanel normales y corrientes. Las pestañas las creará el JTabbedPane cuando añadimos los paneles. Entonces ya tenemos las pestañas creadas, pero tenemos que decirle, en cada pestaña cómo vamos a posicionar los elementos y ponemos otros Absolute layout, uno en cada pestaña. Ahroa ya tenemos las pestañas y además podremos poner los elementos en la zona de la pestaña en que queramos, que en éste caso es una etiqueta JLabel en cada pestaña. Aquí está el código: import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTabbedPane;import javax.swing.border.EmptyBorder;// Ésta es la clase principal// es un JFrame…public class Principal extends JFrame { // el panel principal donde se pone todo private JPanel contentPane; // ejecuta primero […]