Download Crear Menú con JRibbon INTRODUCCIÓN

Document related concepts
no text concepts found
Transcript
BLC
Crear Menú con JRibbon - Lección 001 | Página 1
Crear Menú con JRibbon
BLC
INTRODUCCIÓN
Muchos de nosotros hemos utilizado el Microsoft Office a partir de su versión 2007 y a
veces nos ha entrado el bichito, de cómo podemos darle una apariencia similar a nuestro
programa.
Personalmente en mis inicios lo hacía con JTabbedPane para las pestañas, JPanel para
los grupos, y bueno, dentro JButton (botones) y JLabel (etiquetas), aún así no dejaba de
ser super dificil el diseño.
Hoy aprenderemos como hacer una cinta de opciones al mejor estilo de Microsoft Office
pero en nuestras aplicaciones Java usando el componente JRibbon.
JRibbon es un componente avanzado de Java, para aplicaciones de escritorio, que se
encuentra en la librería Flamingo, creado por Kirill Grouchnikov.
BLC
Crear Menú con JRibbon - Lección 001 | Página 2
LO QUE UTILIZAREMOS EN ESTE TUTORIAL
●
●
●
●
Windows 7 Home Premium de 64 bits.
JDK 7
Netbeans 8.0
Librerías JAR (clic para descargar desde MEGA):
○ flamingo- 7.2.jar
○ substance- 7.2.jar
■ laf- plugin- 7.2.jar
■ laf- widget- 7.2.jar
○ trident- 7.2.jar
EMPEZAMOS
Abrimos nuestro IDE Netbeans 8.0, y creamos un proyecto del tipo Aplicación Java.
BLC
Crear Menú con JRibbon - Lección 001 | Página 3
Una vez tengamos el proyecto vacío vamos a agregar las librerías necesarias para que
podamos usar las clases que nos proporciona flamingo.
Para ello haremos clic derecho en Libraries y luego seleccionaremos la opción Add
JAR/Folder.
Buscamos las librerías que hemos descargado y seguidamente hacemos clic en Open.
Seguidamente definimos nuestra estructura de paquetes (esto puede variar dependiendo
de sus gustos) y crearé una clase llamada FramePrincipal.java
BLC
Crear Menú con JRibbon - Lección 001 | Página 4
FramePrincipal.java heredará de JRibbonFrame y le crearemos un constructor por
defecto, también le crearemos un método main para que se pueda ejecutar.
// La clase FramePrincipal heredará de JRibbonFrame
public class FramePrincipal extends JRibbonFrame {
// Crearemos un constructor por defecto
public FramePrincipal() {
// Le asignaremos algunas propiedades a nuestra ventana
this.setTitle("Tutorial JRibbon");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800, 400);
this.setLocationRelativeTo(null);
// [Siguiendo con el constructor]
}
public static void main(String[] args) {
new FramePrincipal().setVisible(true);
}
}
Corremos nuestro programa y quedará de la siguiente manera:
BLC
Crear Menú con JRibbon - Lección 001 | Página 5
No es la gran cosa, pero seguiremos avanzando, ahora crearemos algunos JRibbonBand
(Grupo) para posteriormente agregarlos a un JRibbonTask (Pestaña).
// [Siguiendo con el constructor]
// Creamos un grupo que será para el portapapeles
JRibbonBand rbbPortapapeles = new JRibbonBand("Portapapeles", null);
// Crearemos los botones de comando Pegar, Cortar, Copiar y Pegar Formato
JCommandButton btnPegar = new JCommandButton("Pegar", null);
JCommandButton btnCortar = new JCommandButton("Cortar", null);
JCommandButton btnCopiar = new JCommandButton("Copiar", null);
JCommandButton btnPegarFormato = new JCommandButton("Pegar Formato", null);
// Luego agregaremos cada botón a nuestro JRibbonBand y le asignaremos una
// prioridad con respecto al grupo que puede ser TOP, MEDIUM y LOW
// Al botón PEGAR le asignaremos la prioridad TOP porque queremos que sobresalte
// de los demás botones.
rbbPortapapeles.addCommandButton(btnPegar, RibbonElementPriority.TOP);
// A los demás botones por ser secundarios se asignaremos la prioridad MEDIUM
rbbPortapapeles.addCommandButton(btnCortar, RibbonElementPriority.MEDIUM);
rbbPortapapeles.addCommandButton(btnCopiar, RibbonElementPriority.MEDIUM);
rbbPortapapeles.addCommandButton(btnPegarFormato, RibbonElementPriority.MEDIUM);
// Ahora nos queda asignarle las políticas de cambio de tamaño
rbbPortapapeles.setResizePolicies((List) Arrays.asList(
new CoreRibbonResizePolicies.Mirror(rbbPortapapeles.getControlPanel()),
new IconRibbonBandResizePolicy(rbbPortapapeles.getControlPanel())
));
// Posteriormente crearemos un JRibbonTask que será nuestra pestaña INICIO
RibbonTask rbtInicio = new RibbonTask("Inicio", rbbPortapapeles);
// Y lo agregaremos a la cinta de opciones
this.getRibbon().addTask(rbtInicio);
Hasta acá correremos nuestro programa tendríamos la siguiente ventana
BLC
Crear Menú con JRibbon - Lección 001 | Página 6
Ahora agregaremos una carpeta llamada imágenes a nuestro proyecto el cual contendrá
las imágenes para nuestros iconos, si no desean buscar iconos por su cuenta los pueden
descargar desde haciendo clic aquí.
Y modificaremos nuestro código
// [Siguiendo con el constructor]
// Creamos un grupo que será para el portapapeles
JRibbonBand rbbPortapapeles = new JRibbonBand("Portapapeles", null);
// Agregaremos el siguiente codigo para obtener nuestro icono con 40 de alto por
// 40 de ancho para el boton pegar
ImageWrapperResizableIcon iconPegar = ImageWrapperResizableIcon.getIcon(
getClass().getResource("/pe/blc/tutoriales/flamingo/imagenes/pegar.png"),
new Dimension(40, 40));
JCommandButton btnPegar = new JCommandButton("Pegar", iconPegar);
ImageWrapperResizableIcon iconCortar = ImageWrapperResizableIcon.getIcon(
getClass().getResource("/pe/blc/tutoriales/flamingo/imagenes/cortar.png",
new Dimension(16, 16));
JCommandButton btnCortar = new JCommandButton("Cortar", iconCortar);
ImageWrapperResizableIcon iconCopiar = ImageWrapperResizableIcon.getIcon(
getClass().getResource("/pe/blc/tutoriales/flamingo/imagenes/copiar.png",
new Dimension(16, 16));
JCommandButton btnCopiar = new JCommandButton("Copiar", iconCopiar);
ImageWrapperResizableIcon iconPegarFormato = ImageWrapperResizableIcon.getIcon(
getClass().getResource(
"/pe/blc/tutoriales/flamingo/imagenes/pegar_formato.png",
new Dimension(40, 40));
JCommandButton btnPegarFormato = new JCommandButton("Pegar Formato",
iconPegarFormato);
BLC
Crear Menú con JRibbon - Lección 001 | Página 7
Nótese que para los botones Cortar, Copiar y Pegar Formato las dimensiones del icono
cambian por 16 por 16 para cuestiones estéticas.
Si ejecutamos el programa tendríamos algo como esto:
Si hacemos clic en algún botón pues simplemente no hará nada entonces agregaremos un
ActionListener al botón pegar:
...
JCommandButton btnPegar = new JCommandButton("Pegar", null);
btnPegar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(rootPane,
"Hiciste clic en el botón pegar");
}
});
...
Si corremos el programa hasta este punto tendríamos lo siguiente:
BLC
Crear Menú con JRibbon - Lección 001 | Página 8
Ahora para darle un toque especial, modificaremos el método main y agregaremos el
LookAndFeel de Substance para hacerlo más parecido a Microsoft Office 2007.
...
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(
new SubstanceOfficeBlue2007LookAndFeel());
} catch (Exception e) { }
new FramePrincipal().setVisible(true);
}
...
Y así pueden ir agregando más botones, más grupos y pestañas, no se queden solo con
este tutorial, investiguen más sobre este poderoso componente que nuestro amigo Kirill
ha creado para nosotros, sin más que decir me despido de ustedes y espero haber ayudado
en su reto de aprender un poco más cada día. Muchas gracias.
Para descargar el proyecto hacer clic aquí.