Archivos anuales: PM

26 entradas

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 […]

Logo de Java

Java Swing 3: Jugando con un JFrame, un JDialog y un JInternalPane

Ésto son un JFrame, un JDialog y un JInternalPane que van por un escritorio, y dice el JDialog al JFrame: – ¡El usuario no me hace caso! Interviene el JInternalFrame y le dice: – Yo lo tengo chungo, ¡¡hazte modal pues!! … Qué chiste más friki xDD Bromas aparte. En éste post voy a escribir sobre el manejo de las ventanas más básicas. Crear, abrir, cerrar, mostrar, esconder, cuádros de diálogo, ventanas internas o externas. Con el diseñador de ventanas (el Swing Designer), puedes ir construyendo tu propio ejemplo. Luego dejaré el ejemplo, códigos fuentes, con comentarios explicando los pasos. Tres clases de ejemplo Para el ejemplo he usado tres clases que he llamado: EjemploJFrame EjemploJDialog EjemploJInternalFrame Lo primero a hacer es tener la última versión de Eclipse y de Java, a ser posible. A fecha de hoy tengo la versión juno de Eclipse y de Java la 1.7 update 9. Y creo un nuevo proyecto llamado JavaSwing3JugandoConVentanas. Gran parte del código lo ha generado Eclipse, así que me he ahorrado mucho tiempo. En el explorador de proyectos, con el botón derecho, en la carpeta donde van a ir los código, le he dado a New… -> Other… Me ha […]

Google Drive vía web en 3 sencillos pasos

Me hago eco de una noticia que últimamente está corriendo por Internet, con una guía, a mi entender bastante complicada para poner una web o archivos en descarga directa en Google Drive. La fuente de la noticia que leo es: http://www.pcactual.com/articulo/actualidad/noticias/12064/google_drive_permite_publicar_contenido_web.html … buscando un poco más, encontré la guía de Developers de Google: https://developers.google.com/drive/publish-site He hecho un par de pruebas, aparte de que está en inglés, se habla del webViewLink y de programar para crear un directorio público :S todo ésto se me va complicando… Una web de ejemplo que nos han dejado los de Google es: https://googledrive.com/host/0B716ywBKT84AcHZfMWgtNk5aeXM/ Resumiendo Voy a ir al grano, reduciendo todo el proceso anterior, lo que necesitas es conseguir la cadena que identifica tu directorio que vas a usar para poner tus archivos. En el ejemplo anterior de la gente de Google, es 0B716ywBKT84AcHZfMWgtNk5aeXM, éste es su identificador para el ejemplo que se han currado. Nosotros entonces podemos reducir el proceso, y para ello sólo hay que seguir 3 pasos: Crear una carpeta dentro de tu Google Drive. La compartes como público en la web. Con lo que te van a dar un enlace como el siguiente https://docs.google.com/folder/d/cadenaQueIndicaTuDirectorio/edit (lo puedes ver en la ventana que […]

Java Swing 2: Crear ventanas con Eclipse

Para éste microtutorial he usado el Swing Designer de Eclipse y la versión 1.7 update 9 de Java, el JDK y el JRE. En Eclipse tenemos tenemos varias opciones para generar código esqueleto para nuestro programa. En la ventana del explorador de proyectos, en el lugar elegido le damos con el botón derecho a New -> Other… y nos saldrá una ventana como la siguiente con las opciones disponibles con respecto a Swing: En el árbol de Swing Designer tenemos las opciones para crear programas con ventanas Swing, valga la redundancia. Todos los códigos generados con el Swing Designer también se pueden crear a mano y se pueden llevar a otros entornos de desarrollo y te van a funcionar. Ésto lo digo porque no ocurre siempre, según en qué entorno de desarrollo estés, a veces pasa que si te sales de él ya no te sirven los códigos porque se les han puesto “extras” que te atan a ellos. Ésto no te va a pasar con los Swing en Eclipse, o por lo menos yo no me encontrado con éste problema. Vamos al grano… Application Window Si elegimos una Application Window nos va a crear la clase siguiente: package pruebasSwing; […]

Java Swing 1: A vista de pájaro

En éste post, espero dar un vistazo general al paquete de clases de Java de Swing, en concreto a la versión estándar 1.7 update 9. En la fecha en que escribo ésto, los Swing ya no están en desarrollo, con lo que no se van a añadir nuevas funcionalidades, ni componentes. En la web de Oracle, podemos ver la jerarquía completa del paquete javax.swing en la documentación original, aquí teneis el árbol de la jerarquía de clases: http://docs.oracle.com/javase/7/docs/api/javax/swing/package-tree.html Casi todas las clases que hay para crear nuestra interfaz de usuario van a empezar por J, como JFrame, JDialog, JButton, JLabel, etcétera… Ya tengo instalada la versión del JDK y del JRE más nueva ahora mismo para asegurarme de que tengo al día el paquete de clases. Así pues, la ayuda contextual de Eclipse me muestra un listado de todos éstos componentes: Tenemos 46 clases en éste listado, de las cuales la clase con la que se contruyen todas las demás clases visuales es JComponent. El resto de clases de Swing que no comienzan por J, ayudan o nos sirven de herramientas para éstas. Quitando la JComponent, nos quedan 45 clases que “dibujan” nuestra interfaz gráfica. Estado actual Swing se contruyó […]

Logo de Java

Multiprocesamiento en Java: ¡Dale caña a tu procesador!

Multiprocesamiento, como reza la Wikipedia, se refiere a la ejecución de varios procesos de manera concurrente, es decir, a la vez. Con los nuevos procesadores que cada vez nos traen más núcleos, he visto que ésto viene a ser más importante. Con Java el multiprocesamiento para aprovechar los núcleos de uno o varios procesadores viene gestionado con la máquina virtual de Java. Es decir, sólo tendremos que preocuparnos de hacer el programa de manera que se puedan ejecutar ‘a trozos’, poner cada tarea en un hilo de ejecución y luego la máquina virtual se encargará de gestionarlo todo. Ésto es lo mismo que viene ocurriendo con los Sistemas Operativos (SO). Tenemos muchos procesos que se ejecutan desde que arrancamos el ordenador, y el SO se encarga de gestionar qué se ejecuta en cada momento. De igual manera nosotros en Java podemos gestionar qué se ejecuta o que se queda esperando, también podemos decirle a todas las tareas que se ejecuten a la vez simplemente sin esperar unas a otras ni nada parecido. Ésto es lo que vamos a ver con el ejemplo sencillo de a continuación, donde se van a crear dos tareas, a y b, y se van a ejecutar […]

El SlideShow más simple con jQuery

Un slideshow viene a significar visor de imágenes o diapositivas que van pasando una tras otra. Estuve buscando para descargar slideshows para web. Encontré de todo tipo, muy elaborados y con muchos extras, unos de pago y otros gratis, pero no era lo que yo quería. Buscaba algo lo más sencillo posible para adaptarlo luego donde lo necesite y al final acabé programándolo a partir de jQuery. Aquí va el código para el que lo necesite: <html><head><!– Con ésto incluyes el jquery en tu web usando en CDN de Google –><script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js”></script></head><body><img id=”imagenslide” src=”imagenes/imagenInicial.jpg” alt=”Imagen de una mascota..” /><script>  cambiaSlideShow(); function cambiaSlideShow() { // variables para configurar var dirImagenes = ‘imagenes/’; // directorio donde estan  // las imágenes, se deben nombrar de la forma  // 1.jpg  // 2.jpg  // etcétera… var numImagenes = 3; // número de imágenes que hay // elige un número aleatorio para mostrar las imágenes // aleatoriamente var randomNum = Math.ceil(Math.random() * numImagenes); // con ésto la imagen desaparece y cuando ha desaparecido // cambia de imagen $(‘#imagenslide’).fadeOut(3000, function () {$(‘#imagenslide’).attr(‘src’, dirImagenes + randomNum + ‘.jpg’);} ); // con ésto otro la imagen aparece con un efecto fade de nuevo $(‘#imagenslide’).fadeIn(3000); setTimeout(function () {cambiaSlideShow(); }, 7000); […]

Ponle un Favicon a tu web

Ya le he puesto al blog un Favicon, y les dejo un nuevo post. Cuando navegas por Internet, las páginas muestran un icono en tu navegador. Cuando agregas dicha web a Favoritos, Marcadores, o como se llame en el navegador que uses.. También verás dicho icono asociado a dicha página web. Ésto es lo que se llama ‘el Favicon’. Favicon, viene de Favourites Icon, icono de favoritos en castellano. Nació para darle mejor estética al listado de páginas de nuestra lista de páginas web favoritas. Y si quieres que tu web tenga una imagen de éstas lo único que debes hacer es usar un código tal que así: <html><head><title>Aquí va el título</title><link href=”http://direcciondetuweb/favicon.ico” rel=”icon” type=”image/x-icon”></head><body><p>Contenido de la página.</p></body></html> La imagen debe ser de 16×16 pixeles tradicionalmente, también puede ser de 32×32, incluso se pueden usar en algunos navegadores imágenes en JPG, PNG y GIF. Pero éstas otras opciones no son totalmente estándar y puede que no funcionen en todos los navegadores. En éste blog, gracias a Blogger, tengo disponible el gadget llamado tal cual Favicon, que automáticamente me genera el código de aquí arriba. Yo te lo he detallado por si acaso lo usas en otro sitio. Así que, después […]

Hola Mundo con Swing y Eclipse

Aquí dejo cómo crear una primera aplicación gráfica en Java usando Swing y Eclipse. El ejercicio clásico ¡Hola Mundo! usando una tecnología que nos brinda Java crear aplicaciones con entorno gráfico, Java Swing. Y para verlo, el entorno de desarrollo elegido ha sido Eclipse. Curioseando qué tal van los desarrollos, con respecto a las interfaces gráficas de usuario (llamadas GUI para los amigos), veo que tengo otra nueva actualización del Window Builder. El Window Builder es un conjunto de plugins de Eclipse que nos van a permitir hacer GUIs en Java sin gastar casi tiempo. A fecha de hoy tengo la versión Juno de Eclipse, y me acabo de instalar el plugin Swing Designer que está disponible dentro del propio Eclipse, en la famosa opción Help -> Install New Software. Instalada la versión 1.5.1 del Swing Designer, me he puesto manos a la obra. En el Explorador de Proyectos, donde estés creando tu aplicación Java, le das con el botón derecho del ratón a New -> Other… Y verás una ventana como la siguiente donde puedes elegir todo el tipo de ficheros, clases, o lo que sea que quieras hacer: Se parece a Visual Studio, NetBeans o IDEs similares ¿verdad? Personalmente […]

Cómo montar un servidor propio con Joomla y Uniform Server

Hola! Ya tengo algo de tiempo, estoy poniéndome al día y navegando veo que hay una nueva versión de Joomla, la 3.0.1. También veo que tengo disponible una nueva versión del Uniform Server, tengo la 8.5.7 y ya existe la 8.6.7, así que me he puesto las pilas para actualizarme y de paso os hago éste post. Joomla ya es compatible con móviles, es la primera plataforma web compatible 100% con móviles, eso escriben en JoomlaSpanish.org. Así que con ésto, es un buen momento de probar la nueva versión. Si estas aquí supongo que ya sabrás que Joomla es un CMS, un sistema para manejo de contenidos, y que el Uniform Server es un servidor de páginas web con base de datos MySQL y otros extras más… Si no lo sabías ya lo sabes, Joomla es una aplicación web, que instalada en un servidor web, te proporciona todas las utilidades necesarias para gestionar una página web medianamente compleja. No voy a entrar en detalle sobre las diferencias entre usar un CMS ya hecho, usar un framework de desarrollo de webs, o programar todo directamente desde cero. Tal vez en otro post. Asi que empezemos a montar un servidor propio… Un poco de […]

Java Medio 5: Clases tipo Interfaz

Vamos a ver cómo se usan las clases de tipo interface. Se usan de igual manera que las clases abstractas, pero tienen unas características peculiares propias de ellas que las diferencian. Las interfaces establecen las variables y funciones que se van a tener, pero no se implementan las funciones dentro de ellas, sino que se implementan en las clases derivadas. No podemos heredar de varias clases abstractas, pero sí que se puede hacer herencia múltiple usando interfaces. Un ejemplo para explicarlo todo ésto es el siguiente: package javaMedio;public class JavaMedio5Interfaz { public static void main(String[] args) { unaClase a; a = new unaClase(); a.nombre = “María”; a.escribir(); a.contar(); }}abstract class cBase { public String nombre; public void escribir() { System.out.println(nombre); }}interface iBase { public static int version = 2; public void contar();}class unaClase extends cBase implements iBase { public void contar() { System.out.println(“versión: ” + version + “rnvamos a contar: 0,1,10,11,100,101,110,111,1000…”); }} Su salida es la siguiente: Maríaversión: 2vamos a contar: 0,1,10,11,100,101,110,111,1000… Vamos con la clase que hereda todo: class unaClase extends cBase implements iBase { public void contar() { System.out.println(“versión: ” + version + “rnvamos a contar: 0,1,10,11,100,101,110,111,1000…”); } Observa que extiende cBase e implementa iBase, extends e implements […]