7.13 MENÚ CON RADIOBUTTON

 

Hola a todos, ¿qué hay? Vamos a ver la creación los submenús con radiobutton. Tiene una gran similitud con el apartado anterior que creamos un submenú con checkbox. La diferencia entre un elemento y otro, que los radiobutton solo puedes seleccionar uno, así como los checkbox sirven para seleccionar varios elementos a la vez.

Vamos a utilizar el mismo código que en el apartado anterior, es el siguiente:

package swing;

 

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

import javax.swing.*;

import javax.swing.text.StyledEditorKit;

 

public class MenuCheckBox {

 

       public static void main(String[] args) {

            

             MarcoMenuCheck mimarco = new MarcoMenuCheck();

            

             mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

       }

 

}

class MarcoMenuCheck extends JFrame {

      

       public MarcoMenuCheck(){

            

             setVisible(true);

            

             setBounds(550, 300, 550, 400);

            

             LaminaMenuCheck milamina = new LaminaMenuCheck();

            

             add(milamina);

 

            

       }

}

class LaminaMenuCheck extends JPanel {

        

        public LaminaMenuCheck() {

              

              setLayout(new BorderLayout());

              

              JPanel laminamenu = new JPanel();

              

              //-------------MENÚS--------------------

              

              JMenuBar barra = new JMenuBar();

              

              fuente = new JMenu("Fuente");

              

              estilo = new JMenu("Estilo");

              

              tamaño = new JMenu("Tamaño");

              

              //--------Tipo letra--------------------

              

              ConfiguraMenu("Arial""fuente""Arial", 9, 10, "");

              

              ConfiguraMenu("Courier""fuente""Courier", 9, 10, "");

              

              ConfiguraMenu("Verdana""fuente""Verdana", 9, 10, "");

              

              //--------Formato-------------------

              

              JCheckBoxMenuItem negrita = new JCheckBoxMenuItem("Negrita"new ImageIcon("src/swing/negrita.gif"));

              

              JCheckBoxMenuItem cursiva = new JCheckBoxMenuItem("Cursiva"new ImageIcon("src/swing/cursiva.gif"));

              

              negrita.addActionListener(new StyledEditorKit.BoldAction());

              

              cursiva.addActionListener(new StyledEditorKit.ItalicAction());

 

              estilo.add(negrita);

              

              estilo.add(cursiva);

 

              //--------Tamaño letra-----------------

              

              

              barra.add(fuente);

              

              barra.add(estilo);

              

              barra.add(tamaño);

              

              laminamenu.add(barra);

              

              add(laminamenu, BorderLayout.NORTH);

              

              area = new JTextPane();

              

              add(area, BorderLayout.CENTER);

 

        }

 

        public void ConfiguraMenu(String rotulo, String menu, String tipoletraint estilosint tam, String ruta_icono) {

              JMenuItem elementoMenu = new JMenuItem(rotulonew ImageIcon(ruta_icono));

              

              if(menu=="fuente") {

                     

                     fuente.add(elementoMenu);

                     

                     if(tipoletra=="Arial") {

                          

                            elementoMenu.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_letra""Arial"));

                            

                     }else if(tipoletra=="Courier") {

                            elementoMenu.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_letra""Courier"));

 

                            

                     }else if(tipoletra=="Verdana") {

                            

                            elementoMenu.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_letra""Verdana"));

 

                     }

                     

                   

                     }

              

              }

        

        JTextPane area;

        

        JMenu fuenteestilotamaño;

      

}

Lo que vamos a hacer aquí es lo siguiente, tenemos la siguiente aplicación:



En el menú Tamaño vamos a crear varios submenús (12, 16, 20 y 24) que nos van a permitir cambiar el tamaño del texto.

Para crear los radiobutton en los submenús vamos a utilizar la clase JRadioButtonMenuItem, que como siempre digo sería conveniente que revisarais la API de Java para saber más acerca de esta clase, su uso, sus constructores, métodos…

Los radiobutton normalmente suelen ir dentro de un grupo, por lo que primero vamos a crear el grupo y después vamos a incluir los JRadioButton en este grupo, así que vamos al código y después de la línea comentada que pone Tamaño escribimos lo siguiente:

ButtonGroup tamaño_letra = new ButtonGroup();

              

              JRadioButtonMenuItem doce = new JRadioButtonMenuItem("12");

              

              JRadioButtonMenuItem dieciseis = new JRadioButtonMenuItem("16");

              

              JRadioButtonMenuItem veinte = new JRadioButtonMenuItem("20");

              

              JRadioButtonMenuItem veinticuatro = new JRadioButtonMenuItem("24");

              

              tamaño_letra.add(doce);

              

              tamaño_letra.add(dieciseis);

              

              tamaño_letra.add(veinte);

              

              tamaño_letra.add(veinticuatro);

Posteriormente, añadimos estos radiobutton al menú:

tamaño.add(doce);

              

              tamaño.add(dieciseis);

              

              tamaño.add(veinte);

              

              tamaño.add(veinticuatro);

Probamos:



Una vez añadidos hay que darles funcionalidad, antes de añadirlos al menú Tamaño, tenemos que utilizar el método ActionListener que nos va a permitir que dependiendo del tamaño que elijamos, el texto cambie de tamaño, dentro de este método utilizamos StyledEditorKit utilizando FonSizeAction al que le vamos a pasar dos parámetros, el primero no hace nada, es una referencia de lo que hace la acción y el segundo es el tamaño del texto:

doce.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 12));

              

dieciseis.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 16));

              

veinte.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 20));

              

veinticuatro.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 24));

 

Y con esto ya estaría finalizado, este sería el trozo de código referente a los JRadioButtonMenuItem:

//--------Tamaño letra-----------------

              

              ButtonGroup tamaño_letra = new ButtonGroup();

              

              JRadioButtonMenuItem doce = new JRadioButtonMenuItem("12");

              

              JRadioButtonMenuItem dieciseis = new JRadioButtonMenuItem("16");

              

              JRadioButtonMenuItem veinte = new JRadioButtonMenuItem("20");

              

              JRadioButtonMenuItem veinticuatro = new JRadioButtonMenuItem("24");

              

              tamaño_letra.add(doce);

              

              tamaño_letra.add(dieciseis);

              

              tamaño_letra.add(veinte);

              

              tamaño_letra.add(veinticuatro);

              

              doce.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 12));

              

              dieciseis.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 16));

              

              veinte.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 20));

              

              veinticuatro.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño", 24));

              

              tamaño.add(doce);

              

              tamaño.add(dieciseis);

              

              tamaño.add(veinte);

              

              tamaño.add(veinticuatro);

Os espero en el próximo post, sed bueno y hasta pronto!

7.12 MENÚ CON CHECKBOX << >> 7.14 MENÚS EMERGENTES



No hay comentarios:

Publicar un comentario