JavaFX |弹出类
Popup 类是 JavaFX 的一部分。 Popup 类创建一个没有内容、空填充并且是透明的弹出窗口。 Popup 类用于显示通知、按钮或下拉菜单等。弹出窗口没有任何装饰。它本质上是一个没有装饰的特殊场景/窗口。
类的构造函数:
- Popup() : 创建一个 Popup 类的对象。
常用方法:
Methods | Explanation |
---|---|
getContent() | The ObservableList of Nodes to be rendered on this Popup. |
setAutoHide(boolean v) | Sets the value of auto hide to the specified boolean value. |
isShowing() | Returns whether the popup is visible or not. |
下面的程序说明了 Popup 类的使用:
- 用于创建弹出窗口并将其添加到舞台的Java程序:在此程序中,我们创建一个名为popup的弹出窗口。弹出窗口包含一个名为label的标签。我们还创建了一个名为button的 Button 并向其添加事件处理程序,然后如果它被隐藏则显示弹出窗口,如果它已经可见则隐藏它。按钮添加到TilePane,TilePane添加到场景,场景添加到舞台。调用 show函数来显示结果。标签的背景颜色使用setStyle()函数设置,标签大小使用setMinHeight() 、 setMinWidth()函数设置。 hide()和show()函数用于隐藏或显示弹出窗口。
// Java program to create a popup and // add it to the stage 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.Label; import javafx.stage.Stage; import javafx.stage.Popup; public class Popup_1 extends Application { // launch the application public void start(Stage stage) { // set title for the stage stage.setTitle("Creating popup"); // create a button Button button = new Button("button"); // create a tile pane TilePane tilepane = new TilePane(); // create a label Label label = new Label("This is a Popup"); // create a popup Popup popup = new Popup(); // set background label.setStyle(" -fx-background-color: white;"); // add the label popup.getContent().add(label); // set size of label label.setMinWidth(80); label.setMinHeight(50); // action event EventHandler
event = new EventHandler () { public void handle(ActionEvent e) { if (!popup.isShowing()) popup.show(stage); else popup.hide(); } }; // when button is pressed button.setOnAction(event); // add button tilepane.getChildren().add(button); // create a scene Scene scene = new Scene(tilepane, 200, 200); // set the scene stage.setScene(scene); stage.show(); } // Main Method public static void main(String args[]) { // launch the application launch(args); } } 输出:
- Java程序使用setAutoHide()函数创建一个弹出窗口并将其添加到舞台并在它失去焦点时自动隐藏弹出窗口:在这个程序中,我们创建一个名为popup的弹出窗口。弹出窗口包含一个名为label的标签。我们还创建了一个名为button的 Button 并向其添加事件处理程序,以显示隐藏的弹出窗口。按钮添加到TilePane,TilePane添加到场景,场景添加到舞台。调用 show函数来显示结果。弹出框失去焦点时会自动隐藏,我们将使用setAutoHide()函数将此功能应用于弹出框。标签的背景颜色使用setStyle()函数设置,标签大小使用setMinHeight()设置, setMinWidth()函数。 hide() 和show()函数用于隐藏或显示弹出窗口。
// Java Program to create a popup and add // it to the stage and make the popup hide // automatically when it loses focus using // the setAutoHide() function 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.Label; import javafx.stage.Stage; import javafx.stage.Popup; public class popup_2 extends Application { // launch the application public void start(Stage stage) { // set title for the stage stage.setTitle("Creating Popup"); // create a button Button button = new Button("popup"); // create a tile pane TilePane tilepane = new TilePane(); // create a label Label label = new Label("This is a Popup"); // create a popup Popup popup = new Popup(); // set background label.setStyle(" -fx-background-color: white;"); // add the label popup.getContent().add(label); // set size of label label.setMinWidth(80); label.setMinHeight(50); // set auto hide popup.setAutoHide(true); // action event EventHandler
event = new EventHandler () { public void handle(ActionEvent e) { if (!popup.isShowing()) popup.show(stage); } }; // when button is pressed button.setOnAction(event); // add button tilepane.getChildren().add(button); // create a scene Scene scene = new Scene(tilepane, 200, 200); // set the scene stage.setScene(scene); stage.show(); } // Main Method public static void main(String args[]) { // launch the application launch(args); } } 输出:
注意:上述程序可能无法在在线 IDE 中运行。请使用离线编译器。
参考: https://docs.oracle.com/javase/8/javafx/api/javafx/stage/Popup.html