miércoles, 17 de octubre de 2018

Hacer un JMenuBar en una ventana en Java

Hola de nuevo, volvemos con una nueva publicación en la que vamos a hacer un JMenuBar que no es otra cosa que una barra de herramientas de una ventana. Un JMenuBar es la barra de herramientas que solemos ver en la parte superior de las ventanas con los menús de "Archivo", "Edición", etc. En Java se llama JMenuBar y consiste en
una barra en la que podemos ir añadiendo menús y en cada menú ir añadiendo items que cumplan alguna función que queramos.

Os dejo el vídeo de como lo hemos hecho y debajo todo el código fuente completo de la aplicación que en este caso es bastante sencilla de crear y muy fácil de expandir para añadirle muchas más cosas y opciones. La aplicación crea una ventana extendiendo de JFrame y se le añade un JMenuBar con dos Menús, uno se llama "Menú" y el otro se llama "Otro Menú". El primero de ellos tiene 3 opciones, Cambiar Color de Fondo a Negro, Cambiar color de fondo a Azul y Crear otra ventana, el "Otro Menú" no hace nada, es sólo a modo de ejemplo de como podemos añadir y hacer más:


El código fuente de esta aplicación es sencillo, se trata de hacer una ventana normal en este caso extendiendo de JFrame para posteriormente añadirle el JMenuBar y después los menús con sus items. Está todo debidamente comentado pero si tenéis alguna duda no dudéis en ponerla por los comentarios.

Código Fuente:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Principal extends JFrame implements ActionListener{
    
private static final long serialVersionUID = 1L;

private JMenuBar menuBar;//crea la barra de menús
    private JMenu menu, otroMenu;//menús que añadiremos a la bara de menús
    private JMenuItem i1,i2,i3;//los items que tienen los menús
     
    public static void main(String[] ar) {
        Principal ventana=new Principal();
        ventana.setBounds(100,100,600,400);
        ventana.setTitle("Ventana con JMenu Bar");
        ventana.setVisible(true);
        ventana.setResizable(false);
    }    

    public Principal() {
    //creamos la barra de menú
        menuBar=new JMenuBar();
        setJMenuBar(menuBar);
        
        //añadimos la opción menú
        menu=new JMenu("Menú");
        menuBar.add(menu);
        
        //añadimos un item
        i1=new JMenuItem("Cambiar Color de Fondo a Negro");
        i1.addActionListener(this);
        menu.add(i1);
        
        //añadimos otro item
        i2=new JMenuItem("Cambiar Color de Fondo a Azul");
        i2.addActionListener(this);
        menu.add(i2);
        
        //y añadimos otro item más
        i3=new JMenuItem("Crear otra ventana");
        i3.addActionListener(this);
        menu.add(i3);
        
        //añadimos otro menu a la barra de menús que en este caso no hace nada
        otroMenu=new JMenu("Otro Menú");
        menuBar.add(otroMenu);
        
    }
    
    //acciones que hace cada item cuando son pulsados
    public void actionPerformed(ActionEvent e) {
    Container f=this.getContentPane();
        if (e.getSource()==i1) {
            f.setBackground(new Color(0,0,0));//cambia a color negro
        }
        if (e.getSource()==i2) {
            f.setBackground(new Color(0,102,255));//cambia a color azul
        }
        if (e.getSource()==i3) {
        Principal ventana=new Principal();//crea otra ventana
             ventana.setBounds(200,200,700,500);
             ventana.setTitle("Otra Ventana con JMenu Bar");
             ventana.setVisible(true);
             ventana.setResizable(false);
        }        
    }
      
}

No hay comentarios:

Publicar un comentario