JavaFX |菜单按钮

MenuButton是JavaFX库的一部分。按下菜单按钮时,会显示一个上下文菜单,其中显示一组项目,用户可以选择任何项目。它通常包含多个菜单项,用户一次最多可以选择一个菜单项。 MenuButton类的构造函数是:

null
  1. 菜单按钮() :创建一个新的菜单按钮
  2. 菜单按钮(字符串t) :创建带有指定文本的菜单按钮
  3. 菜单按钮(字符串t,节点g) :创建带有指定文本的菜单按钮 和图形
  4. 菜单按钮(字符串t、节点g、菜单项…i) 使用指定的文本、图形和菜单项创建菜单按钮

常用方法:

方法 解释
getItems() 返回菜单按钮的项目
GetPopUpper() 获取财产的价值
隐藏 隐藏关联菜单
isShowing() 获取显示的属性的值。
上(v侧) 设置属性的值。
show() 显示关联菜单

下面的程序演示了MenuButton类:

  • 程序创建菜单按钮并向其添加菜单项 :将以名称m创建一个菜单按钮,并将3个菜单项m1、m2、m3添加到菜单按钮m。该菜单栏将在场景内创建,而场景又将在舞台内托管。函数setTitle()用于为舞台提供标题。然后创建一个tilepane,在该tilepane上调用addChildren()方法将菜单按钮附加到场景中。最后,调用show()方法来显示最终结果。

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);
}
}


输出:

图片[1]-JavaFX |菜单按钮-yiteyi-C++库

  • 程序来创建一个菜单按钮,并向其添加菜单项,还可以添加一个事件处理程序来处理事件 :将以名称m创建一个菜单按钮,并将3个菜单项m1、m2、m3添加到菜单按钮m。该菜单栏将在场景内创建,而场景又将在舞台内托管。函数setTitle()用于为舞台提供标题。然后创建一个tilepane,在该tilepane上调用addChildren()方法将菜单按钮附加到场景中。最后,调用show()方法来显示最终结果。将创建事件处理程序来处理菜单项的事件。将创建一个标签l2,以显示选择了哪个菜单项。

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);
}
}


输出 :

图片[2]-JavaFX |菜单按钮-yiteyi-C++库 图片[3]-JavaFX |菜单按钮-yiteyi-C++库

注: 上述程序可能无法在联机IDE中运行。请使用脱机编译器。 参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/MenuButton.html

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享