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:
- MenuBar() : crea una nueva barra de menú vacía.
- MenuBar(Menu… m) : crea una nueva barra de menú con el conjunto de menú dado.
Los constructores de la clase Menú son:
- Menu() : crea un menú vacío
- Menu(String s) : crea un menú con una string como etiqueta
- 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.
- 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:
- 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 :
- 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 :
Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un convertidor fuera de línea.
Referencia:
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Menu.html
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/MenuBar.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