La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Jesús Arellano JMenu.

Presentaciones similares


Presentación del tema: "Jesús Arellano JMenu."— Transcripción de la presentación:

1 Jesús Arellano JMenu

2 ¿Cómo utilizar el JMenu?
Existen tres clases importantes al utilizar menús en Java: La primera es JMenuBar, que representa la barra en la que voy a guardar mis menús, técnicamente nada más es una barra donde podemos poner menús. Estos menús se representan mediante JMenu que son lo que nosotros normalmente llamamos menú por ejemplo el menú "Archivo", "Edición", "Formato", etc. dentro de estos menús tenemos diferentes elementos. Los elementos de un menú se representan mediante la clase JMenuItem que son las opciones que hay dentro de cada menú, por ejemplo, en el menú "Archivo" está la opción de "Nuevo", "Guardar", "Abrir", etc.

3 Cont… Todo esto es muy importante tenerlo en mente ya que cuando creamos nuestros menus tenemos que crear una barra de menu (con JMenuBar) y después agregarle varios menus (con JMenu) y a cada uno de los menús ponerle opciones y botones (con JMenuItem).

4 Poner un JMenuBar es tan fácil como agregar una sola línea donde lo iniciamos.
menuBar = new JMenuBar();

5 Agregar un JMenu también es muy sencillo, lo único que tenemos que hacer es iniciar un nuevo JMenu con el texto que queremos que aparezca y después tenemos que agregarlo al JMenuBar que creamos en el paso anterior. También podemos ponerle una tecla de acceso rápido con setMnemonic() que recibe un KeyEvent. Donde A es la tecla que deberá de ser presionada para abrir el menú. mnuArchivo = new JMenu(“Archivo”); mnuArchivo.setMnemonic(KeyEvent.VK_A); menuBar.add(mnuArchivo);

6 Al agregar el JMenuItem es cuando las cosas empiezan a ponerse un poco más complicadas. Primero que nada podemos ver que el constructor recibe el texto que queremos que muestre el elemento del menú. Después vemos el método setAccelerator() que recibe un KeyStroke. Este método nos sirve para elegir la tecla de acceso rápido (por ejemplo para crear un archivo nuevo sería CTRL+N) mneItemNuevo = new JMenuItem(“Nuevo”); menuItemNuevo.setAcelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEventnt.CTRL_MASK)); mnuItemNuevo.setMnemonic(KeyEvent.VK_N); mnuArchivo.add(mnuItemNuevo);

7 Para obtener el KeyStroke podemos utilizar el método getKeyStroke()
Para obtener el KeyStroke podemos utilizar el método getKeyStroke(). Este método recibe un KeyEvent que representa la tecla que se va a apretar y después un valor int que representa si estamos presionando alguna tecla modificadora, valores válidos para esto son las constatnes: CTRL_MASK, ALT_MASK y SHIFT_MASK de ActionEvent y el valor 0 cuando no queremos que se presione ninguna tecla.

8 Un paso más allá Además de los menus como acabamos de verlos podemos hacer muchos tipos más de menus. Tenemos menus dentro de menus (como el menú de Word de Insertar -> Imagen), hay menus que incluyen un JCheckBox para poder elegir opciones, también hay menus que tienen JRadioButton y por último hay menus que aparecen al presionar el botón derecho del mouse. mnuFormato = new JMenu(“Formato”); mnuFormato.setMnemonic(KeyEvent.VK_F); mnuBar.add(mnuFormato);

9 Crear un menú dentro de otro menú es muy sencillo
Crear un menú dentro de otro menú es muy sencillo. Primero podemos ver que tenemos un menú llamado mnuFormato que vamos a agregar en el JMenuBar principal, después podemos ver que creamos otro menú llamado mnuAlineacion que vamos a agregar a mnuFormato mediante el método add() que utilizamos normalmente para agregar a un JMenuBar. Con esto el menú de "Alineación" va a aparecer dentro del menú "Formato". mnuAlineacion = new JMenu(“Alineacion”); mnuAlineacion.setMnemonic(KeyEvent.VK_A); mnuFormato.add(mnualineacion);

10 JRadioButtonMenuItem
Primero podemos ver que tenemos que crear un ButtonGroup para que todos los JRadioButtonMenuItem sean del mismo grupo y no se pueda seleccionar más que uno. Podemos agregarle teclas de acceso rápido mediante setMnemonic() y también podríamos utilizar setAccelerator(). También vemos que tiene los métodos de la clase JRadioButton como setSelected(). ButtonGroup alineacionGroup = new ButtonGroup(); mnuItemAlineacionIzquierda = new RadioButtonMenuItem("Izquierda"); mnuItemAlineacionIzquierda.setMnemonic(KeyEvent.VK_I); mnuItemAlineacionIzquierda.setSelected(true); alineacionGroup.add(mnuItemAlineacionIzquierda); mnuAlineacion.add(mnuItemAlineacionIzquierda);

11 JRadioButtonMenuItem
Al igual que los JRadioButtonMenuItem son muy similares a los JRadioButton los JCheckBoxMenuItem son muy similares en su comportamiento a los JCheckBox como podemos ver inclusive tenemos que utilizar el ItemListener para escuchar sus eventos. mnuItemBarraEstado = new JCheckBoxMenuItem("Barra de estados"); mnuItemBarraEstado.setMnemonic(KeyEvent.VK_B); mnuItemBarraEstado.setSelected(true); mnuVer.add(mnuItemBarraEstado);

12 JPopupMenu Crear un JPopupMenu es muy similar a crear un menú normal, primero tenemos que crear un objeto de tipo JPopupMenu y después tenemos que agregarle JMenuItems. Lo único que es importante mencionar es que si queremos hacer que aparezcan menus que ya estabamos utilizando antes tenemos que crear JMenuItems nuevos, no podemos utilizar los que ya teníamos, porque Java maneja los componentes de tal manera que solamente puedan existir una vez y si queremos agregarlos dos veces una de las dos va a desaparecer. popTexto = new JPopupMenu(); popItemCopiar = new JMenuItem("Copiar"); popItemCopiar.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK) ); popItemCopiar.setMnemonic(KeyEvent.VK_C); popTexto.add(popItemCopiar);

13 Ahora viene la parte interesante del JPopupMenu: Primero tenemos que crear tantos menus como vamos a utilizar, después a cada componente que va a tener un JPopupMenu debemos agregarle un MouseListener con el método addMouseListener() que recibe quién debe controlar el evento (normalmente se usa this) y por último debemos crear los métodos mousePressed() y mouseReleased() que reciben un MouseEvent. Dentro de cada uno de estos métodos debemos de revisar si el evento debe mostrar un popup (en Windows quiere decir si es click derecho) mediante el método isPopupTrigger() y que control generó el evento mediante getSource(). Ahora debemos utilizar el método show() del JPopupMenu para mostrar el menú, este método recibe tres parámetros, el primero es el control que mandó llamar el menú y los otros dos son las coordenadas (x,y) donde debe aparecer el menú.

14 public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger() && e.getSource() == txtTexto) { popTexto.show(txtTexto, e.getX(), e.getY()); } public void mouseReleased(MouseEvent e) { if (e.isPopupTrigger() && e.getSource() == txtTexto) {


Descargar ppt "Jesús Arellano JMenu."

Presentaciones similares


Anuncios Google