在Swing中,我可以使用setEchoChar
设置echo char:
new JPasswordField().setEchoChar('*');
我如何在JavaFX中做同样的事情?
答案 0 :(得分:2)
这有点难看,但是......密码掩码字符被硬编码到默认皮肤中。
您需要做的是创建自己的皮肤并实现自己的遮罩功能。
现有功能请求更灵活的密码屏蔽功能:
如果有人有兴趣为JavaFX开发贡献open-jfx项目,这将是一个很好的简单方法...
作为背景,这里是来自JavaFX 8 com.sun.javafx.scene.control.skin.TextFieldSkin.java
的制作代码:
// For use with PasswordField
public static final char BULLET = '\u2022';
. . .
@Override protected String maskText(String txt) {
if (getSkinnable() instanceof PasswordField) {
int n = txt.length();
StringBuilder passwordBuilder = new StringBuilder(n);
for (int i = 0; i < n; i++) {
passwordBuilder.append(BULLET);
}
return passwordBuilder.toString();
} else {
return txt;
}
}
因此,您可以看到com.sun
类无法使其可配置。
答案 1 :(得分:1)
You should just be able to use CSS styling for it.
示例,为了使回声字符为“ - ”:
PasswordField passwordField = new PasswordField();
passwordField.setStyle("-fx-echo-char: -;");