JavaFX | MenuBar y Menú

Menú es un menú emergente que contiene varios elementos de menú que se muestran cuando el usuario hace clic en un menú. El usuario puede seleccionar un elemento del menú después del cual el menú pasa a un estado oculto.

MenuBar generalmente se coloca en la parte superior de la pantalla que contiene varios menús. JavaFX MenuBar suele ser una implementación de una barra de menú.

Los constructores de la clase MenuBar son:

  1. MenuBar() : crea una nueva barra de menú vacía.
  2. MenuBar(Menu… m) : crea una nueva barra de menú con el conjunto de menú dado.

Los constructores de la clase Menú son:

  1. Menu() : crea un menú vacío
  2. Menu(String s) : crea un menú con una string como etiqueta
  3. Menú (String s, Node n) : construye un menú y establece el texto de visualización con el texto especificado y establece el Node gráfico en el Node dado.
  4. Menu(String s, Node n, MenuItem… i) : construye un menú y establece el texto de visualización con el texto especificado, el Node gráfico en el Node dado, e inserta los elementos dados en la lista de elementos.

Métodos comúnmente utilizados:

método explicación
getItems() devuelve los elementos del menú
ocultar() ocultar el menú
mostrar() mostrar el menú
obtenerMenús() Los menús que se muestran dentro de esta barra de menús.
isUseSystemMenuBar() Obtiene el valor de la propiedad useSystemMenuBar
setUseSystemMenuBar(booleano v) Establece el valor de la propiedad useSystemMenuBar.
setOnHidden(EventHandler v) Establece el valor de la propiedad onHidden.
setOnHiding(EventHandler v) Establece el valor de la propiedad onHiding.
setOnShowing(EventHandler v) Establece el valor de la propiedad onShowing.
setOnShown(EventHandler v Establece el valor de la propiedad onShown.

Los siguientes programas ilustran la clase MenuBar y Menu:

  1. Programa Java para crear una barra de menú y agregarle un menú y también agregar elementos de menú al menú: Este programa crea una barra de menú indicada por el nombre mb . Se creará un menú con el nombre m y se agregarán 3 elementos de menú m1 , m2 , m3 al menú m y el menú m se agregará a la barra de menú mb . La barra de menú se creará dentro de una escena, que a su vez se alojará dentro de un escenario. La función setTitle() se utiliza para proporcionar título al escenario. Luego se crea un VBox, en el que se llama al método addChildren() para adjuntar la barra de menú dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales.

    // Java program to create a menu bar and add
    // menu to it and also add menuitems to menu
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.LocalDate;
    public class MenuBar_1 extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating MenuBar");
      
            // create a menu
            Menu m = new Menu("Menu");
      
            // create menuitems
            MenuItem m1 = new MenuItem("menu item 1");
            MenuItem m2 = new MenuItem("menu item 2");
            MenuItem m3 = new MenuItem("menu item 3");
      
            // add menu items to menu
            m.getItems().add(m1);
            m.getItems().add(m2);
            m.getItems().add(m3);
      
            // create a menubar
            MenuBar mb = new MenuBar();
      
            // add menu to menubar
            mb.getMenus().add(m);
      
            // create a VBox
            VBox vb = new VBox(mb);
      
            // create a scene
            Scene sc = new Scene(vb, 500, 300);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }

    Salida :

  2. Programa Java para crear una barra de menú y agregarle un menú y también agregar elementos de menú al menú y también agregar un detector de eventos para manejar los eventos: Este programa crea una barra de menú indicada por el nombre mb . Se creará un menú con el nombre m y se agregarán 3 elementos de menú m1 , m2 , m3 al menú m y el menú m se agregará a la barra de menú mb. La barra de menú se creará dentro de una escena, que a su vez se alojará dentro de un escenario. La función setTitle() se usa para dar título al escenario. Luego se crea un VBox, en el que se llama al método addChildren() para adjuntar la barra de menú dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales. También se creará una etiqueta que mostrará qué elemento del menú está seleccionado. Se creará un evento de acción para procesar la acción cuando el usuario haga clic en el elemento del menú.

    // Java program to create a menu bar and add menu to
    // it and also add menuitems to menu and also add
    // an event listener to handle the events
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.LocalDate;
    public class MenuBar_2 extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating MenuBar");
      
            // create a menu
            Menu m = new Menu("Menu");
      
            // create menuitems
            MenuItem m1 = new MenuItem("menu item 1");
            MenuItem m2 = new MenuItem("menu item 2");
            MenuItem m3 = new MenuItem("menu item 3");
      
            // add menu items to menu
            m.getItems().add(m1);
            m.getItems().add(m2);
            m.getItems().add(m3);
      
            // label to display events
            Label l = new Label("\t\t\t\t"
                                + "no menu item selected");
      
            // create events for menu items
            // action event
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() {
                public void handle(ActionEvent e)
                {
                    l.setText("\t\t\t\t" + ((MenuItem)e.getSource()).getText() + 
                                                                   " selected");
                }
            };
      
            // add event
            m1.setOnAction(event);
            m2.setOnAction(event);
            m3.setOnAction(event);
      
            // create a menubar
            MenuBar mb = new MenuBar();
      
            // add menu to menubar
            mb.getMenus().add(m);
      
            // create a VBox
            VBox vb = new VBox(mb, l);
      
            // create a scene
            Scene sc = new Scene(vb, 500, 300);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }

    Salida :

  3. Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un convertidor fuera de línea.

    Referencia:

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *