Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Componentes / Java / Look and Feel / Personalizar JTabbedPane con Netbeans

Personalizar JTabbedPane con Netbeans

Por jc mouse miércoles, enero 9, 2013

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.

blacktabbedpane

¿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:

jcalendar structure

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, BlackTabbedPaneBlackTabbedPaneUI. 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.

Set Get

Vista de métodos desde la paleta de propiedades

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

Segunda Parte

Tags

Artículos similares

Uso de Arrays: Ejemplo práctico

En este post iremos conociendo de un modo práctico que es y como se utiliza un Array en java, para esto partiremos de un[...]

Laberinto del Terror (Código Fuente + juego)

El laberinto del terror es un juego en el que haciendo uso del ratón y de tu pulso de borracho debes cruzar distintos la[...]

Estilos condicionales en iReport

iReport nos da la posibilidad de dar un formato condicional a los diferentes registros resultado de nuestras consultas S[...]

Tesseract OCR: Reconocimiento de caracteres

OCR (Optical Character Recognition) en español, Reconociminto Optico de Caracteres, es el proceso por el cual  se extrae[...]

Introducción a PHP con Netbeans

NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Sin em[...]

Desarrollo de juegos con Libgdx y Android Studio

De las pocas herramientas disponibles entre librerías, frameworks, engines, etc para el desarrollo de videojuegos en len[...]