JavaFX | Botón de menú

MenuButton es parte de la biblioteca JavaFX. El botón de menú cuando se presiona muestra un menú contextual que muestra un conjunto de elementos y el usuario puede seleccionar cualquier elemento. Por lo general, contiene varios elementos de menú y el usuario puede seleccionar como máximo un elemento de menú a la vez. 
Los constructores de la clase MenuButton son: 

  1. MenuButton() : crea un nuevo botón de menú
  2. MenuButton(String t) : crea un botón de menú con un texto específico
  3. MenuButton(String t, Node g) : crea un botón de menú con un texto 
    y un gráfico especificados
  4. MenuButton(String t, Node g, MenuItem… i) crea un botón de menú con un texto, gráfico y elementos de menú especificados

Métodos comúnmente utilizados:
 

método explicación
getItems() devuelve los elementos del botón de menú
getPopupSide() obtener el valor de la propiedad popupSide
ocultar() oculta el menú contextual
está mostrando() Obtiene el valor de la propiedad que se muestra.
setPopupSide(Lado v) Establece el valor de la propiedad popupSide.
mostrar() muestra el menú contextual

Los siguientes programas ilustran la clase MenuButton:
 

  • Programa para crear un MenuButton y agregarle MenuItems : Se creará un MenuButton con el nombre m y se agregarán 3 menuitems m1, m2, m3 al menuButton m. 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 mosaico, en el que se llama al método addChildren() para adjuntar el botón de menú dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales.

Java

// Program to create a menubutton and add menuitems to it
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.collections.*;
import javafx.stage.Stage;
import javafx.scene.text.Text.*;
import javafx.scene.paint.*;
import javafx.scene.text.*;
public class MenuButton_1 extends Application {
    // labels
    Label l;
 
    // launch the application
    public void start(Stage s)
    {
        // set title for the stage
        s.setTitle("creating MenuButton ");
 
        // create a tile pane
        TilePane r = new TilePane();
 
        // create a label
        Label l1 = new Label("This is a MenuButton example ");
 
        // create a menu button
        MenuButton m = new MenuButton("menuButton");
 
        // 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 tilepane
        TilePane vb = new TilePane(l1, m);
 
        // create a scene
        Scene sc = new Scene(vb, 200, 200);
 
        // set the scene
        s.setScene(sc);
 
        s.show();
    }
 
    public static void main(String args[])
    {
        // launch the application
        launch(args);
    }
}

Producción: 
 

  • Programa para crear un botón de menú y agregarle elementos de menú y también agregar un controlador de eventos para manejar eventos : Se creará un botón de menú con el nombre m y se agregarán 3 elementos de menú m1, m2, m3 al botón de menú m. 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 mosaico, en el que se llama al método addChildren() para adjuntar el botón de menú dentro de la escena. Finalmente, se llama al método show() para mostrar los resultados finales. Se creará un controlador de eventos que manejará los eventos de los elementos del menú. Se creará una etiqueta l2 para mostrar qué elemento del menú está seleccionado.
     

Java

// Program to create a menubutton and add menuitems
// to it and also add event handler to handle events
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.WindowEvent;
import javafx.event.EventHandler.*;
import javafx.event.EventHandler;
import javafx.event.ActionEvent;
import javafx.collections.*;
import javafx.stage.Stage;
import javafx.scene.text.Text.*;
import javafx.scene.paint.*;
import javafx.scene.text.*;
public class MenuButton_2 extends Application {
    // labels
    Label l;
 
    // launch the application
    public void start(Stage s)
    {
        // set title for the stage
        s.setTitle("creating MenuButton ");
 
        // create a tile pane
        TilePane r = new TilePane();
 
        // create a label
        Label l1 = new Label("This is a MenuButton example ");
 
        // create a menu
        MenuButton m = new MenuButton("MenuButton");
 
        // 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 the selected menuitem
        Label l2 = new Label("default menuitem selected");
 
        // create action event
        EventHandler<ActionEvent> event1 = new EventHandler<ActionEvent>() {
            public void handle(ActionEvent e)
            {
                l2.setText(((MenuItem)e.getSource()).getText() + " selected");
            }
        };
 
        // add action events to the menuitems
        m1.setOnAction(event1);
        m3.setOnAction(event1);
        m2.setOnAction(event1);
 
        // create a tilepane
        TilePane vb = new TilePane(l1);
 
        vb.getChildren().add(m);
        vb.getChildren().add(l2);
 
        // create a scene
        Scene sc = new Scene(vb, 200, 200);
 
        // set the scene
        s.setScene(sc);
 
        s.show();
    }
 
    public static void main(String args[])
    {
        // launch the application
        launch(args);
    }
}

Salida
 

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea. Utilice un compilador fuera de línea.
Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/MenuButton.html

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 *