PasswordField
用于密碼輸入。用戶鍵入的字符通過顯示回顯字符串被隱藏。
以下代碼使用來自PasswordField
類的默認(rèn)構(gòu)造函數(shù)創(chuàng)建一個(gè)密碼字段,然后為密碼字段設(shè)置提示消息文本。 提示消息在字段中顯示為灰色文本,并為用戶提供該字段是什么的提示,而不使用標(biāo)簽控件。
PasswordField passwordField = new PasswordField();
passwordField.setPromptText("Your password");
PasswordField
類有setText
方法來為控件設(shè)置文本字符串。對(duì)于密碼字段,指定的字符串由回顯字符隱藏。默認(rèn)情況下,回顯字符是一個(gè)點(diǎn)(或是星號(hào))。
密碼字段中的值可以通過getText()
方法獲取。
密碼字段和操作偵聽器,如下所示 -
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class Main extends Application {
final Label message = new Label("");
@Override
public void start(Stage stage) {
Group root = new Group();
Scene scene = new Scene(root, 260, 80);
stage.setScene(scene);
stage.setTitle("Password Field Sample");
VBox vb = new VBox();
vb.setPadding(new Insets(10, 0, 0, 10));
vb.setSpacing(10);
HBox hb = new HBox();
hb.setSpacing(10);
hb.setAlignment(Pos.CENTER_LEFT);
Label label = new Label("Password");
final PasswordField pb = new PasswordField();
pb.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
if (!pb.getText().equals("abc")) {
message.setText("Your password is incorrect!");
message.setTextFill(Color.web("red"));
} else {
message.setText("Your password has been confirmed");
message.setTextFill(Color.web("black"));
}
pb.setText("");
}
});
hb.getChildren().addAll(label, pb);
vb.getChildren().addAll(hb, message);
scene.setRoot(vb);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上面的代碼生成以下結(jié)果。