Crear una librería swing para java utilizando Netbeans no es nada del otro mundo y la cantidad de código que vayamos a escribir depende de que tan complejo sea el swing que deseamos obtener.
En este tutorial, el swing que crearemos sera un JTabbedPane personalizado al estilo windows 8 minimalista, dejando atrás el estilo clásico de este componente, gracias a las ventajas que ofrece la POO, sobre escribiremos métodos y crearemos algunos más para diseñar a nuestro antojo el swing.
El resultado obtenido sera un JTabbedpane con un estilo minimalista, sencillo, sin esos bordes 3d que a veces ya cansan a la vista.
¿Que necesitamos?
Si bien se puede escribir código java desde un simple editor de texto, para que complicarse la vida digo yo 🙂 si tenemos varios IDEs gratuitos a disposición, nosotros haremos uso de Netbeans en su versión 7.2
Así también, es recomendable que tengas un uso intermedio de lo que es Java y Netbeans, no explicare cosas básicas como crear paquetes por ejemplo para no hacer el tuto largo y aburrido.
Tutorial
1. Creamos un nuevo proyecto en Netbeans. File -> New project -> Java -> Java Class Library.
El nombre del proyecto será «BlackTabbedPane«, si tienen otro nombre mejor, pues no hay problema 🙂
2. Ahora debemos crear la estructura de nuestra librería, esto se hace para dar orden a nuestro proyecto, por ejemplo la librería JCalendar tiene la siguiente estructura:
Puede verse como esta separado cada cosa en este swing, paquetes para las imágenes, paquetes para las clases, etc.
Muy bien, nosotros debemos hacer lo mismo con nuestro proyecto, como esta librería no será la gran cosa, esta estructura de paquetes y clases queda reducida a la siguiente forma:
Tenemos dos paquetes, uno dentro de la otra, ORG y MATRIX, los nombres de los paquetes son meramente orientativos, es decir, nos indican que cosa va dentro de cada paquete.
Solo contamos con dos clases, BlackTabbedPane y BlackTabbedPaneUI. Explicaremos para que son a continuación.
3. BlackTabbedPane.java sera nuestra clase principal, nuestro swing que utilizaremos desde el Palette de Netbeans.
Esta clase se extenderá de un JTabbedPane ya que lo que hacemos es personalizar este componente ya existente.
package org.matrix; import javax.swing.JTabbedPane; public class BlackTabbedPane extends JTabbedPane { public BlackTabbedPane(){ /** El codigo aqui */ } }
Así mismo, esta clase contara con cuatro métodos públicos, dos SET y dos GET, cuando creamos una librería swing y queremos que estos métodos se muestran en la paleta de propiedades, cada método debe tener un set y un get.
public void setTabSelectedColor( Color color ) { } public Color getTabSelectedColor() { } public void setTabUnselectedColor( Color color ) { } public Color getTabUnselectedColor() { }
Estos métodos serán para asignar los colores a los TABS en su estado SELECCIONADO y NO SELECCIONADO.
4. BlackTabbedPaneUI, para poder manipular la interfaz del JTabbedPane, debemos cambiar su Look and Feel, este se encuentra en la clase BasicTabbedPaneUI, puedes encontrar mucha información de sus propiedades y métodos en la API Java de estos objetos.
La clase BlackTabbedPaneUI sera una extensión de TabbedPaneUI y del cual sobre escribiremos 3 métodos.
public class BlackTabbedPaneUI extends BasicTabbedPaneUI { @Override protected void paintTabBackground( Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected ) { } @Override protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected) { } @Override protected void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex ) { } }
No hay que ser todo un conocedor de la lengua de shakespeare para darse cuenta para que son estos métodos, ¿o si? o.O
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Java2d nos permite manipular imagenes y asi poder crear animaciones sencillas como muestra el siguiente video. Puedes de...
¿Que son los archivos JNLP? Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta...
HTML5 junto a javascript permite dibujar figuras llamadas shapes sobre un lienzo que recibe el nombre de «canvas» su uso...
La Interfaz Grafica de Usuario en Java nos brinda la posibilidad de cambiar la apariencia de nuestras aplicaciones, ya s...
GraphADT es una proyecto alojado en github escrito en java que te permite trabajar con grafos, a la fecha de escribir es...
El componente swing JLabel nos permite cargar una imagen con la propiedad setIcon, sin embargo la imagen no toma el tama...
Los comentarios estan cerrados
El gigante tecnologico Google a puesto un bonito Doodle en su buscador que esta fascinando a sus millones de usuarios qu...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...
Hola, ya que empiezas con esto del tabbedPane ¿No sabes alguna manera para poder poner la forma de la pestaña? (algo así como con los jbutton personalizados con imagenes) Saludos.
claro que si campeón, es el próximo tutorial, no te lo pierdas 😉
Esta muy bueno che pero , seria bueno que hagas un video y tambien dejara el ejemplo para descargar …
el ejemplo para descarga esta al final 🙂
quisiera hacer videotutoriales, se que es mucho mejor que estar leyendo, pero lastimosamente el internet en mi país es una porquería lo que hace que subir un video de 15 minutos en baja calidad se convierta en un martirio, lo siento tal vez en un futuro (espero no muy lejano)
🙂
tus tutoriales estan bien asi, pues muestras el codigo, y aparte compartes los proyectos, sigue adelante amigo, saludos!!! =)
amigo mouse tengo un error con todas las librerias que me descargo de tu pagina cuando las descargo se me muestran con el icono de netbeans ?? a que se debe eso?? se supone que debe aparecer con el icono de java ??
creo que es cosa de tu sistema, algo debió desconfigurarse :/
Hola Mouse, he seguido tu tutorial y vaya que me ha ayudado mucho.
Pero me resulto un problema pequeño. Y Aprovechando me gustaría tener tu opinion sobre una duda que tengo… 😀
1.- Todo sale perfecto al crear la librería, importarla a mi proyecto, el problema entra cuando ejecuto el programa, El colorContentBorder no es respetado en tiempo de Ejecución, sin embargo solo es visible desde la opción de «Preview Design». No se a que se deba… tal vez tengo que modificar una propiedad o que crees que sea?
Te Adjunto una imagen: http://min.us/lPLjTuVlZNBAx
2.- Y sobre mi duda es la siguiente; Estoy desarrollando una aplicación de escritorio para una Biblioteca de tamaño mediano (cantidad de Libros y Registros por día). Esta es la primera vez que programo bajo Java; pues siempre lo he hecho en C# con MySQL. Últimamente empecé a usar SQLite junto con Java en apps de prueba. Bueno, la cosa es que quiero pedirte tu opinión sobre el rendimiento de las apps de escritorio usando SQLite. Crees que sea algo viable usarlo para mi proyecto?.
Pues es todo, Muchas Gracias de antemano.
Y te felicito por tu Blog & Comunidad!! Saludos !!
Hola de nuevo 😀 !
Muse ya encontré la solución al problema. Se trataba del famoso Look & Feel!…
Lo solucione así:
public vntSistema() {
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e)
{
}
initComponents();
}
en donde habira que poner eso? para solucionarlo