我正在使用Jython并尝试让用户输入密码。但是,我希望它显示一个星号而不是用户输入的字符。我设法使用getpass做类似的事情,但它要求你输入cmd行,它不会显示任何东西而不是星号。
我希望将用户输入到对话框中; "输入()"命令会打开一个完美的盒子。例如,这个:
import sys
password = input("Please enter your password: ")
if password == None: #if the user hits cancel
sys.exit(0)
但是,它不会掩盖文本。我可以使用jython的java方面这样做:
import javax.swing.JOptionPane as JOP
import javax.swing.JPasswordField as JPF
import sys
pwdF = JPF()
choice = JOP.showConfirmDialog(None, pwdF,
"Please enter your password:",
JOP.OK_CANCEL_OPTION)
if choice == JOP.CANCEL_OPTION:
sys.exit(0)
password = pwdF.getText()
我遇到的一个问题是我无法将光标默认为文本字段(而是从ok按钮开始)。但首先,我想要采用更加抒情的方式来做这件事。
我使用java.swing,使用布局和添加组件搞砸了很多;但是,我没有理解它足以以一种可行的方式调整它。
有没有人知道创建一个带有蒙版文本的输入框的方法与我发布的java版本不同?
感谢。
答案 0 :(得分:0)
您可以使用javax.swing.JPasswordField类。 一个例子是:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
public class PwdForm extends JFrame {
public JFrame frame;
public PwdForm() {
//Create main Panel
JPanel mainPanel = new JPanel();
//Password field
JLabel lblPwd = new JLabel("Password :");
mainPanel.add(lblPwd);
final JPasswordField txtPwd = new JPasswordField(20);
lblPwd.setLabelFor(txtPwd);
mainPanel.add(txtPwd);
//Confirm Button
final JButton btnOk = new JButton("Confirm");
mainPanel.add(btnOk);
//Create and set up the window.
frame = new JFrame("Password Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Set up the content pane.
mainPanel.setOpaque(true); //content panes must be opaque
frame.setContentPane(mainPanel);
//Display the window.
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
}
public static void main(String[] args) {
PwdForm lf = new PwdForm();
}
}