.site {
background-color: #a1d87f;
}
@Autor: Prof. Luis Mitre
En Este Ejemplo pondremos imágenes como botones para utilizarlos como Menús
Paso 1. Creamos nuestro Proyecto (Solo para el Ejemplo recuerda que el código lo puedes implementar donde tu lo necesites).
Paso 2. Creamos nuestro Paquete (Puedes utilizar cualquier nombre).
Paso 3. Creamos la Clase VentanaBotones, que es la cual contendra los iconos para convertirlos en Menús la cual debe de extiendes de JPanel.
El Código de Esta clase quedaría de la siguiente manera:
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
public class VentanaBotones extends JPanel{
//creamos los botones y en su constructor insertamos la imagen
public JButton btnVentas=new JButton(new ImageIcon("./imagenes/ventas.png"));
public JButton btnNuevoUsuario=new JButton(new ImageIcon("./imagenes/usuario.png"));
public JButton btnAgregar=new JButton(new ImageIcon("./imagenes/agregar.png"));
public JButton btnInventario=new JButton(new ImageIcon("./imagenes/inventario.png"));
public JButton btnRegistrar=new JButton(new ImageIcon("./imagenes/registrar.png"));
public JButton btnConsultar=new JButton(new ImageIcon("./imagenes/consultar.png"));
public VentanaBotones(){
//establecemos el color que tendra de fondo el panel que en este caso es verde
Color fondoBoton=new Color(0,255,0);
//agregamos el color al panel
setBackground(fondoBoton);
//estas variables nos ayudaran a dar el tamaño a los botones para que sean uniformes
int tamanox=100;
int tamanoy=100;
//agregamos los tamaños a los botones
btnAgregar.setSize(tamanox, tamanoy);
btnConsultar.setSize(tamanox, tamanoy);
btnInventario.setSize(tamanox, tamanoy);
btnNuevoUsuario.setSize(tamanox, tamanoy);
btnRegistrar.setSize(tamanox, tamanoy);
btnVentas.setSize(tamanox, tamanoy);
//acada boton lo modificamos
btnAgregar.setOpaque(true);// esto hace transparente el boton
btnAgregar.setBorder(null);//con esto quitamos su borde
btnAgregar.setBackground(fondoBoton);//agregamos el mismo fondo para que no se
//note donde empieza un boton y termina el otro
//con la siguiente propiedad agrega un mensaje cuando
//el cursor del mouse se posiciona encima del boton
btnAgregar.setToolTipText("Agregar mas Cantidad de Un Producto");
//hacemos exactamente lo mismo para cada boton
btnConsultar.setOpaque(true);
btnConsultar.setBorder(null);
btnConsultar.setBackground(fondoBoton);
btnConsultar.setToolTipText("Consultar Productos");
btnInventario.setOpaque(true);
btnInventario.setBorder(null);
btnInventario.setBackground(fondoBoton);
btnInventario.setToolTipText("Listado de todos los Productos");
btnNuevoUsuario.setOpaque(true);
btnNuevoUsuario.setBorder(null);
btnNuevoUsuario.setBackground(fondoBoton);
btnNuevoUsuario.setToolTipText("Agregar Nuevo Usuario");
btnRegistrar.setOpaque(true);
btnRegistrar.setBorder(null);
btnRegistrar.setBackground(fondoBoton);
btnRegistrar.setToolTipText("Registrar Nuevo Producto");
btnVentas.setOpaque(true);
btnVentas.setBorder(null);
btnVentas.setBackground(fondoBoton);
btnVentas.setToolTipText("Ventas");
//asignamos el gestor de posicion que en este caso es por flujo
setLayout(new FlowLayout());
//agregamos los botones al panel
add(btnConsultar);
add(btnInventario);
add(btnNuevoUsuario);
add(btnAgregar);
add(btnVentas);
add(btnRegistrar);
}
}
Nota: las imágenes se deben de poner en una carpeta llamada imágenes dentro del proyecto:

Paso 4. Creamos nuestra clase VentanaPrincipal la cual extiende de un JFrame ya que esta es la que se visualiza y es la que recibe todas las ventanas.
El código de la clase quedaría de la siguiente manera:
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class VentanaPrincipal extends JFrame implements ActionListener{
//creamos el objeto del panel botones
VentanaBotones pnlBotones=new VentanaBotones();
//creamos el panel que recibira todas las ventanas
JPanel pnlCentral=new JPanel();
//creamos paneles de las ventanas que mostraremos
JPanel pnlVentas=new JPanel();
JPanel pnlNuevo=new JPanel();
JPanel pnlAgregar=new JPanel();
JPanel pnlInventario=new JPanel();
JPanel pnlRegistrar=new JPanel();
JPanel pnlConsular=new JPanel();
//creamos etiquetas para poner nombre a los paneles
JLabel lblVentas=new JLabel("Panel Ventas");
JLabel lblNuevo=new JLabel("Panel Nuevo");
JLabel lblAgregar=new JLabel("Panel Agregar");
JLabel lblInventario=new JLabel("Panel Inventario");
JLabel lblRegistrar=new JLabel("Panel Registrar");
JLabel lblConsular=new JLabel("Panel Consultar");
//creamos el objeto baraja que sera el que nos permita cambiar la ventana que se muestra
CardLayout baraja=new CardLayout();
//creamos el tipo de letra para las etiquetas
Font letraEtiquetas=new Font("Arial",1,20);
//iniciamos nuestro constructor
public VentanaPrincipal(){
//agregamos el gestor a la Ventana
setLayout(new BorderLayout());
//empesamos a construir todas las ventanas a mostrar
pnlAgregar.setLayout(new FlowLayout());//agregamos el layout
pnlAgregar.add(lblAgregar);//agregamos la etiqueta
pnlAgregar.setBackground(new Color(255,0,0));//agregamos fondo de color
//hacemos lo mismo con el resto de las ventanas
pnlConsular.setLayout(new FlowLayout());
pnlConsular.add(lblConsular);
pnlConsular.setBackground(new Color(255,255,0));
pnlInventario.setLayout(new FlowLayout());
pnlInventario.add(lblInventario);
pnlInventario.setBackground(new Color(255,0,255));
pnlNuevo.setLayout(new FlowLayout());
pnlNuevo.add(lblNuevo);
pnlNuevo.setBackground(new Color(0,255,0));
pnlRegistrar.setLayout(new FlowLayout());
pnlRegistrar.add(lblRegistrar);
pnlRegistrar.setBackground(new Color(0,0,255));
pnlVentas.setLayout(new FlowLayout());
pnlVentas.add(lblVentas);
pnlVentas.setBackground(new Color(255,255,255));
//agregamos el gestor baraja al panel central
pnlCentral.setLayout(baraja);
//agregamos cada panel ventana al central y le pones un nombre a cada ventana
pnlCentral.add(pnlAgregar,"agregar");
pnlCentral.add(pnlConsular,"consultar");
pnlCentral.add(pnlInventario,"inventario");
pnlCentral.add(pnlNuevo,"nuevo");
pnlCentral.add(pnlRegistrar,"registrar");
pnlCentral.add(pnlVentas,"ventas");
//agregamos el panel botones y el panel central a la ventana principal
add(pnlBotones,BorderLayout.NORTH);
add(pnlCentral,BorderLayout.CENTER);
//establecemos el tamaño de la ventana
setSize(500, 500);
//establecemos la accion a realizar cuando se cierre el frame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//acemos visible la ventana
setVisible(true);
//le agregamos a cada uno de los botones el escuchadar de acciones
pnlBotones.btnAgregar.addActionListener(this);
pnlBotones.btnConsultar.addActionListener(this);
pnlBotones.btnInventario.addActionListener(this);
pnlBotones.btnNuevoUsuario.addActionListener(this);
pnlBotones.btnRegistrar.addActionListener(this);
pnlBotones.btnVentas.addActionListener(this);
}
/**
* en este metodo estableces que hara cada boton
* que en este caso cada boton invocara a una ventana dentro
* de la baraja
*/
public void actionPerformed(ActionEvent evento) {
if(evento.getSource()==pnlBotones.btnAgregar){
baraja.show(pnlCentral, "agregar");
}else if(evento.getSource()==pnlBotones.btnConsultar){
baraja.show(pnlCentral, "consultar");
}else if(evento.getSource()==pnlBotones.btnInventario){
baraja.show(pnlCentral, "inventario");
}else if(evento.getSource()==pnlBotones.btnNuevoUsuario){
baraja.show(pnlCentral, "nuevo");
}else if(evento.getSource()==pnlBotones.btnRegistrar){
baraja.show(pnlCentral, "registrar");
}else if(evento.getSource()==pnlBotones.btnVentas){
baraja.show(pnlCentral, "ventas");
}
}
}
Paso 5. por Ultimo creamos nuestra clase Auxiliar que es la cual ejecuta el programa, quedando de la siguiente manera:
public class Auxiliar {
public static void main(String[] args) {
// creamos el objeto de nuestra ventana principal
VentanaPrincipal objeto = new VentanaPrincipal();
}
}
Con esto terminamos debería de quedar parecido a la siguiente imagen solo con las imágenes que tu decidas poner.

Con esto tendríamos una ventana con unos iconos como imagen, cabe recalcar que las imágenes que utilices preferentemente sean en formato PNG, y que el tamaño sea aproximadamente de 72×72 Pixeles o dependiendo del tamaño que tu desees.
Espero te sirva………