菜单 是一个弹出式菜单,包含用户单击菜单时显示的多个菜单项。用户可以选择一个菜单项,然后菜单进入隐藏状态。
null
梅努巴 通常位于包含多个菜单的屏幕顶部。JavaFX菜单栏通常是一个菜单栏的实现。
MenuBar类的构造函数是:
- 梅努巴() :创建一个新的空菜单栏。
- 菜单栏(菜单…m) :使用给定的菜单集创建新菜单栏。
菜单类的构造函数是:
- 菜单() :创建一个空菜单
- 菜单(字符串s) :创建标签为字符串的菜单
- 菜单(字符串s,节点n) :构造菜单并使用指定文本设置显示文本,并将图形节点设置为给定节点。
- 菜单(字符串s、节点n、菜单项…i) :构造菜单并使用指定文本设置显示文本,将图形节点设置为给定节点,并将给定项目插入项目列表。
常用方法:
方法 | 解释 |
---|---|
getItems() | 返回菜单项 |
隐藏 | 隐藏菜单 |
show() | 显示菜单 |
getMenus() | 要在此菜单栏中显示的菜单。 |
isUseSystemMenuBar() | 获取属性useSystemMenuBar的值 |
setUseSystemMenuBar(布尔值v) | 设置属性useSystemMenuBar的值。 |
setOnHidden(EventHandler v) | 设置onHidden属性的值。 |
setOnHiding(EventHandler v) | 设置属性onHiding的值。 |
设置显示(EventHandler v) | 设置显示属性的值。 |
setOnShown(事件处理程序v) | 设置显示属性的值。 |
下面的程序演示了菜单栏和菜单类:
- Java程序,用于创建菜单栏并向其中添加菜单,以及向菜单中添加菜单项: 该程序创建一个由名称指示的菜单栏 兆字节 .将按名称创建菜单 M 和3个菜单 m1 , m2 , m3 将被添加到菜单中 M 菜单呢 M 将被添加到菜单栏 兆字节 。菜单栏将在场景中创建,而场景又将在舞台中托管。函数setTitle()用于为舞台提供标题。然后创建一个VBox,在该VBox上调用addChildren()方法将菜单栏附加到场景中。最后,调用show()方法来显示最终结果。
// 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);
}
}
输出 :
- Java程序,用于创建菜单栏并向其中添加菜单,还可以向菜单中添加菜单项,还可以添加事件侦听器来处理事件: 该程序创建一个由名称指示的菜单栏 兆字节 .将按名称创建菜单 M 和3个菜单 m1 , m2 , m3 将被添加到菜单中 M 菜单呢 M 将被添加到菜单栏 兆字节 。菜单栏将在场景中创建,而场景又将在舞台中托管。函数setTitle()用于为舞台提供标题。然后创建一个VBox,在该VBox上调用addChildren()方法将菜单栏附加到场景中。最后,调用show()方法来显示最终结果。还将创建一个标签,显示选择了哪个菜单项。当用户单击菜单项时,将创建一个操作事件来处理该操作。
// 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(
" "
+
"no menu item selected"
);
// create events for menu items
// action event
EventHandler<ActionEvent> event =
new
EventHandler<ActionEvent>() {
public
void
handle(ActionEvent e)
{
l.setText(
" "
+ ((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);
}
}
输出 :
注: 以上程序可能无法在联机IDE中运行,请使用脱机转换器。
参考:
- 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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END