Introdução ao menu JavaFX

No menu JavaFX, o menu é usado como um pop-up que consiste em muitos itens de menu que são mostrados quando o usuário clica nele. Depois disso, os itens de menu entram em um estado oculto. Para criar isso, instancie a classe javafx.scene.control.Menu. Sintaxe, construtores e vários outros aspectos do JavaFX Menu serão discutidos nas seções a seguir.

Sintaxe:

No JavaFX, o menu pode ser criado como abaixo.

Menu mn = new Menu();

Sempre verifique se a classe javafx.scene.chart.Menu é importada para o programa antes de executar o código.

Construtores do menu JavaFX

Existem quatro construtores para o menu JavaFX. Eles são:

  • Menu (): um menu vazio será criado.
  • Menu (String s): Um menu será criado com a string s como seu rótulo.
  • Menu (String s, Node nd): Um menu será criado com a string s como seu rótulo e nd como o nó gráfico.
  • Menu (String s, Node nd, Item… .. i): Um menu será criado com a string s como seu rótulo e como o nó gráfico e adicionará os itens fornecidos à lista.

Métodos do menu JavaFX

Existem alguns métodos de menu JavaFX que são discutidos abaixo:

  • getItems (): itens a serem exibidos neste menu.
  • getOnHidden (): o valor da propriedade onHidden será retornado.
  • getOnShowing (): o valor da propriedade onShowing será retornado.
  • getOnHiding (): o valor da propriedade onHiding será retornado.
  • getOnShown (): o valor da propriedade onShown será retornado.
  • setOnHidden (EventHandler v): o valor da propriedade onHidden v será definido.
  • setOnHiding (EventHandler v): o valor da propriedade onHiding v será definido.
  • setOnShowing (EventHandler v): o valor da propriedade onShowing v será definido.
  • setOnShown (EventHandler v): o valor da propriedade onShown v será definido.
  • hide (): se contextMenu ou seus submenus estiverem sendo exibidos, esse método será chamado para ocultá-lo.
  • isShowing (): a exibição do valor da propriedade será retornada.
  • onHiddenProperty (): Depois que o contextMenu estiver oculto, esse método será chamado.
  • onShowingProperty (); Antes que o contextMenu seja mostrado, esse método será chamado mesmo se não houver itens para mostrar.
  • onHidingProperty (): antes que o contextMenu seja oculto, esse método será chamado.
  • onShownProperty (): Depois que o contextMenu for exibido, esse método será chamado.
  • addEventHandler (EventType et, EventHandler e): um manipulador de eventos e será registrado no item de menu.
  • removeEventHandler (EventType et, EventHandler e): um manipulador de eventos e registrado será cancelado o registro no item de menu.
  • buildEventDispatchChain (EventDispatchChaint): Uma cadeia de expedição de eventos t será construída para o destino.
  • showingProperty (): para verificar se o contextMenu está visível, esse método será chamado.

Como criar menu em JavaFX?

O Menu JavaFX pode ser criado usando as seguintes etapas.

Etapa 1: Crie uma classe que se estende da classe de aplicativo.

Importe o pacote javafx.application.Application para estender a classe Application e crie uma classe que a estenda.

public class JavaFXChartsExample extends Application (
)

Etapa 2: Crie o menu.

Como já discutido, crie um menu usando a sintaxe.

Menu m = new Menu();

Etapa 3: Criar itens de menu.

Criar itens de menu Itens de menu que precisam ser adicionados ao menu que precisa ser criado.

MenuItem mi1 = new MenuItem("Happy");

Etapa 4: Crie uma barra de menus.

MenuBar mb = new MenuBar();

Etapa 5: adicionar barra de menus.

Adicione a barra de menus criada.

mb.getMenus().add(mn);

Etapa 6: Configurar grupo e cena.

Um grupo e uma cena devem ser configurados após a execução das etapas acima.

VBox vb = new VBox(mb);
Scene sc = new Scene(vb, 400, 200);
s.setScene(sc);
s.show();

Exemplos para implementar o menu JavaFX

Vamos ver alguns programas JavaFX diferentes para implementar o menu JavaFX.

Exemplo 1

Neste exemplo, veremos um programa java com itens de menu para construir um menu.

Código:

//java program to create a menu with menu items
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.event.EventHandler;
import javafx.scene.control.*;
import javafx.stage.Stage;
import javafx.scene.control.Alert.AlertType;
import java.time.LocalDate;
import javafx.scene.control.Button;
import javafx.scene.layout.*;
import javafx.event.ActionEvent;
//sample class that extends application class
public class JavaFXMenuExample extends Application (
// application starts at this point
public void start(Stage s)
(
// Title for the stage
s.setTitle("Sample menu bar");
// menu creation
Menu mn = new Menu("Select your favourite online shopping site");
// menu items creation
MenuItem mi1 = new MenuItem("Flipkart");
MenuItem mi2 = new MenuItem("Myntra");
MenuItem mi3 = new MenuItem("Amazon");
MenuItem mi4 = new MenuItem("Club factory");
// Adding menu items
mn.getItems().add(mi1);
mn.getItems().add(mi2);
mn.getItems().add(mi3);
mn.getItems().add(mi4);
// menubar creation
MenuBar mb = new MenuBar();
// Adding Menubar
mb.getMenus().add(mn);
// VBox creation
VBox v = new VBox(mb);
// scene creation
Scene scn = new Scene(v, 500, 300);
// set the scene
s.setScene(scn);
//display the result
s.show();
)
public static void main(String args())
(
// launch the application
launch(args);
)
)

Resultado:

Um menu será exibido como mostrado acima. Quando é clicado, uma lista de itens é exibida.

Exemplo 2

Este é um programa java para criar um menu com itens de menu e seus subitens.

Código:

//java program to create menu with menu items and its sub items
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.control.CheckMenuItem;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.control.MenuItem;
import javafx.scene.control.RadioMenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.ToggleGroup;
public class JavaFXMenuExample extends Application (
@Override
public void start(Stage s) (
//create border pane
BorderPane r = new BorderPane();
Scene scene = new Scene(r, 300, 250, Color.RED);
//create menubar
MenuBar mb = new MenuBar();
mb.prefWidthProperty().bind(s.widthProperty());
r.setTop(mb);
// first menu with sub items
Menu m = new Menu("Select your Age group");
MenuItem mi1 = new MenuItem("18-24");
MenuItem mi2 = new MenuItem("25-35");
MenuItem mi3 = new MenuItem("36-50");
m.getItems().addAll(mi1, mi2, mi3);
// second menu with sub items
Menu m1 = new Menu("Favorite online site");
ToggleGroup t1 = new ToggleGroup();
RadioMenuItem r1 = new RadioMenuItem("Flipkart");
r1.setToggleGroup(t1);
RadioMenuItem r2 = new RadioMenuItem("Myntra");
r2.setToggleGroup(t1);
r2.setSelected(true);
m1.getItems().addAll(r1, r2);
Menu m2 = new Menu("Queries");
m2.getItems().addAll( new CheckMenuItem("Related to product"),
new CheckMenuItem("Related to delivery"));
m1.getItems().add(m2);
mb.getMenus().addAll(m, m1);
s.setScene(scene);
s.show();
)
public static void main(String() args) (
launch(args);
)
)

Resultado:

Dois menus com diferentes subitens serão exibidos na execução do código. Quando o segundo menu é clicado, são mostrados subitens como Flipkart, Myntra e Queries.

Pode-se observar que um tick está presente próximo ao Myntra, já que o método setSelected está definido como True.

Quando o menu Consultas é clicado, dois subitens, como 'Relacionados ao produto' e 'Relacionados à entrega', são exibidos.

Conclusão

No JavaFX, o menu é usado como um pop-up que é exibido quando um usuário clica nele. O menu consiste em itens de menu e seus subitens. Neste documento, pontos importantes no menu JavaFX são discutidos.

Artigos recomendados

Este é um guia para o menu JavaFX. Aqui discutimos a sintaxe, os construtores, os métodos e as etapas para criar o JavaFX Menu, juntamente com exemplos e implementação de código. Você também pode consultar os seguintes artigos para saber mais:

  1. Função hash em Java
  2. Matrizes na programação Java
  3. JLabel em Java
  4. Layouts JavaFX
  5. Como a função hash funciona em php com sintaxe?
  6. Os 15 principais métodos do JavaFX VBox