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:
- MenuButton() : crea un nuevo botón de menú
- MenuButton(String t) : crea un botón de menú con un texto específico
- MenuButton(String t, Node g) : crea un botón de menú con un texto
y un gráfico especificados - 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