JavaFx |密码字段
PasswordField 类是 JavaFX 包的一部分。它是一个屏蔽输入字符的文本字段(输入的字符不会向用户显示)。它允许用户输入单行无格式文本,因此它不允许多行输入。
PasswordField 类的构造函数:
- PasswordField() : 创建一个新的 PasswordField
(PasswordField继承了TextField,所以这里可以使用TextField的所有方法。密码字段没有单独的方法,都是从文本字段继承的。)
下面的程序说明了 PasswordField 类的使用:
- 创建密码字段的Java程序:该程序创建由名称 b 指示的密码字段。 PasswordField 将在场景中创建,而场景又将托管在舞台(这是顶级 JavaFX 容器)中。函数setTitle() 用于为舞台提供标题。然后创建一个标题窗格,在该窗格上调用 addChildren() 方法以将 PasswordField 附加到场景中,以及代码中 (200, 200) 指定的分辨率。最后调用 show() 方法显示最终结果。
// Java program to create a passwordfield 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.scene.control.Label; import javafx.stage.Stage; public class Passwordfield extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating Passwordfield"); // create a Passwordfield PasswordField b =new PasswordField(); // create a tile pane TilePane r = new TilePane(); // add password field r.getChildren().add(b); // create a scene Scene sc =new Scene(r,200,200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
- 用于创建密码字段并添加事件处理程序的Java程序:该程序创建由名称 b 指示的 PasswordField。我们将创建一个标签,当按下回车键时将显示密码。我们将创建一个事件处理程序来处理密码字段的事件,并且事件处理程序将使用 setOnAction() 方法添加到密码字段。 PasswordField 将在场景中创建,而场景又将托管在舞台(这是顶级 JavaFX 容器)中。函数setTitle() 用于为舞台提供标题。然后创建一个标题窗格,调用 addChildren() 方法在场景中附加 PasswordField 和标签,以及代码中 (200, 200) 指定的分辨率。最后调用 show() 方法显示最终结果。
// Java program to create a passwordfield and add // a event handler to handle the event of Passwordfield 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.scene.control.Label; import javafx.stage.Stage; public class Passwordfield_1 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating Passwordfield"); // create a Passwordfield PasswordField b =new PasswordField(); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("no Password"); // action event EventHandler
event = new EventHandler (){ public void handle(ActionEvent e) { l.setText(b.getText()); } }; // when enter is pressed b.setOnAction(event); // add password field r.getChildren().add(b); r.getChildren().add(l); // create a scene Scene sc =new Scene(r,200,200); // 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/PasswordField.html