Menús
En JavaFX disponemos del control Barra de menú que es el control que nos permite crear una barra de menú para nuestra ventana. Este tipo de control nos permite añadir diferentes elementos a dicha barra que a su vez pueden ser: elementos de menú, separadores, elementos de menú de verificación y elementos de menú de radio. Creo que a estas alturas sobran las explicaciones sobre dichos elementos.
JavaFX también nos permite crear elementos de menú contextuales que son similares a los anteriores, pero que se asignan a un control individual y no se añaden a una barra de menú.
Los controles relativos a las barras de menús pertenecen, principalmente, a las clases: javafx.scene.control.MenuBar
, javafx.scene.control.Menu
, javafx.scene.control.MenuItem
, javafx.scene.control.SeparatorMenuItem
, javafx.scene.control.CheckMenuItem
y javafx.scene.control.RadioMenuItem
. Un menú contextual pertenece a la clase javafx.scene.control.ContextMenu
.
Veamos cómo podemos crear una barra de menú simple para nuestra escena.
El código utilizado para crear esta interfaz es el siguiente:
package javafx.controles;
import javafx.application.Application;
import javafx.recursos.LocalizadorRecursos;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Menus extends Application {
@Override
public void start(Stage escenarioPrincipal) {
try {
VBox raiz = new VBox();
MenuBar mbPrincipal = new MenuBar();
Menu mFichero = new Menu("Fichero");
MenuItem miAbrir = new MenuItem("Abrir");
MenuItem miGuardar = new MenuItem("Guardar");
SeparatorMenuItem separador = new SeparatorMenuItem();
MenuItem miSalir = new MenuItem("Salir");
mFichero.getItems().addAll(miAbrir, miGuardar, separador, miSalir);
Menu mAyuda = new Menu("Ayuda");
MenuItem miAcercaDe = new MenuItem("Acerca de...");
mAyuda.getItems().add(miAcercaDe);
mbPrincipal.getMenus().addAll(mFichero, mAyuda);
Image logo = new Image(LocalizadorRecursos.class.getResourceAsStream("imagenes/logo-ies2.png"), 200, 200, true, true);
ImageView ivLogo = new ImageView(logo);
raiz.getChildren().addAll(mbPrincipal, ivLogo);
Scene escena = new Scene(raiz, 200, 230);
escenarioPrincipal.setTitle("Menús");
escenarioPrincipal.setScene(escena);
escenarioPrincipal.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}