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
Las estructuras de control de Shell son muy parecidos a otras lenguajes de programación. Las estructuras disponibles en[...]
Segunda parte del tutorial [Introducción a Scene Builder y MVC (Parte I)]. En esta segunda parte, completaremos el diseñ[...]
En post anteriores vimos lo que son los procedimientos almacenados y como llamarlos desde java, en este post veremos lo[...]
En este tutorial crearemos el botón de Google+ Google Circles para una interfaz de escritorio 🙂 si no sabes lo que son e[...]
iReport nos da la posibilidad de dar un formato condicional a los diferentes registros resultado de nuestras consultas S[...]
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[...]