JavaFX | Elemento de menú personalizado

CustomMenuItem es parte de la biblioteca JavaFX. CustomMenuItem permite diferentes tipos de Nodes como elemento de menú. Una de las propiedades útiles de customMenuItem es hideOnClick. Esta propiedad establece si el menú debe ocultarse cuando el usuario hace clic en el elemento del menú o no.
Constructores de CustomMenuItem: 
 

  1. CustomMenuItem(Node n) : crea un elemento de menú con el Node especificado
  2. CustomMenuItem (Node n, booleano b) : crea un elemento de menú con el Node y oculta al hacer clic en la propiedad especificada

Métodos comúnmente utilizados: 

método explicación
obtener el contenido() obtiene el valor del contenido de la propiedad
esOcultarAlHacerClic() obtiene el valor de la propiedad hideOnClick
setHideOnClick(booleano v) establece el valor de la propiedad hideOnClick
setContent(Node v) establece el Node como el contenido del elemento del menú

Los siguientes programas ilustrarán el uso de CustomMenuItem: 
 

  • Programa para crear un elemento de menú personalizado y agregarlo al menú: Este programa crea una barra de menú indicada por el nombre barra de menú. Se creará un menú con el nombre my 3 elementos de menú personalizados menuitem_1, menuitem_2, menuitem_3 se agregarán al menú y el menú se agregará a la barra de menú. 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 un 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. Los elementos de menú personalizados contendrán un botón, una etiqueta y una casilla de verificación.
     

Java

// Program to create a custom menu items and add it to the menu
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 CustomMenuItem_1 extends Application {
 
    // Launch the application
    public void start(Stage stage)
    {
        // Set title for the stage
        stage.setTitle("creating CustomMenuItem ");
 
        // Create a tile pane
        TilePane r = new TilePane();
 
        // Create a label
        Label description_label =
                    new Label("This is a CustomMenuItem example ");
 
        // Create a menu
        Menu menu = new Menu("Menu");
 
        // Create menuitems
        CustomMenuItem menuitem_1 =
                    new CustomMenuItem(new Button("MenuItem 1"));
        CustomMenuItem menuitem_2 =
                    new CustomMenuItem(new Label("MenuItem 2"));
        CustomMenuItem menuitem_3 =
                    new CustomMenuItem(new CheckBox("MenuItem 3"));
 
        // Add menu items to menu
        menu.getItems().add(menuitem_1);
        menu.getItems().add(menuitem_2);
        menu.getItems().add(menuitem_3);
 
        // Create a menubar
        MenuBar menubar = new MenuBar();
 
        // Add menu to menubar
        menubar.getMenus().add(menu);
 
        // Create a VBox
        VBox vbox = new VBox(menubar);
 
        // Create a scene
        Scene scene = new Scene(vbox, 200, 200);
 
        // Set the scene
        stage.setScene(scene);
 
        stage.show();
    }
 
    public static void main(String args[])
    {
        // Launch the application
        launch(args);
    }
}
  • Producción: 
     

  • Programa para crear elementos de menú personalizados y agregarlo al menú y usar la propiedad ocultar al hacer clic: Este programa crea una barra de menú indicada por el nombre barra de menú. Se creará un menú con el nombre my 4 elementos de menú personalizados menuitem_1, menuitem_2, menuitem_3, menuitem_4 se agregarán al menú y el menú se agregará a la barra de menú. 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 un 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. CustonMenuItems contendrá un botón, un control deslizante, una casilla de verificación y una casilla de elección. La propiedad ocultar al hacer clic de menuitems_2 y menuitems_4 personalizados se establecerá en falso y de menuitem_1 y menuitems_3 se establecerá en verdadero. Al hacer clic en menuitem_2 y menuitem_4 no desaparecerán al hacer clic. 
     

Java

// Program to create custom menu items and
// Add it to the menu and use the property hide on click
 
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 CustomMenuItem_2 extends Application {
 
    // Launch the application
    public void start(Stage stage)
    {
        // Set title for the stage
        stage.setTitle("creating CustomMenuItem ");
 
        // Create a tile pane
        TilePane r = new TilePane();
 
        // Create a label
        Label description_label =
                   new Label("This is a CustomMenuItem example ");
 
        // Create a menu
        Menu menu = new Menu("Menu");
 
        // Create menuitems
        CustomMenuItem menuitem_1 =
                   new CustomMenuItem(new Button("MenuItem 1"));
        CustomMenuItem menuitem_2 =
                   new CustomMenuItem(new Slider());
        CustomMenuItem menuitem_3 =
                   new CustomMenuItem(new CheckBox("MenuItem 3"));
        CustomMenuItem menuitem_4 =
                   new CustomMenuItem(new ChoiceBox(FXCollections
                     .observableArrayList("choice 1",
                                   "choice 2", "choice 3")));
 
        // Cet hide on click property
        menuitem_2.setHideOnClick(false);
        menuitem_4.setHideOnClick(false);
        menuitem_1.setHideOnClick(true);
        menuitem_3.setHideOnClick(true);
 
        // Add menu items to menu
        menu.getItems().add(menuitem_1);
        menu.getItems().add(menuitem_2);
        menu.getItems().add(menuitem_3);
        menu.getItems().add(menuitem_4);
 
        // Create a menubar
        MenuBar menubar = new MenuBar();
 
        // Add menu to menubar
        menubar.getMenus().add(menu);
 
        // Create a VBox
        VBox vbox = new VBox(menubar);
 
        // Create a scene
        Scene scene = new Scene(vbox, 200, 200);
 
        // Cet the scene
        stage.setScene(scene);
 
        stage.show();
    }
 
    public static void main(String args[])
    {
        // Launch the application
        launch(args);
    }
}
  • Producción: 
     

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un compilador fuera de línea.
Referencia: https://docs.oracle.com/javafx/2/api/javafx/scene/control/CustomMenuItem.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 *