我有一个分配问题,需要我创建一个JPasswordField。需要两个按钮,一个用于在另一个文本字段中显示实际密码,另一个用于显示文本字段中的字符数。这是我的目标,但我无法编译,因为Method setText in class javax.swing.text.JTextComponent cannot be applied to given types.
当我想让它自己读取密码时,编译器会在bt1
下停止。
有人可以帮忙吗?
感谢。 代码:
public class JavaPasswordCount {
public JavaPasswordCount() {
JFrame window = new JFrame("Password Character Count");
window.setSize(50, 50);
JButton bt1 = new JButton("Show Count");
JButton bt2 = new JButton("Show Password");
final JPasswordField pwd = new JPasswordField();
final JTextField tf = new JTextField();
final int counter;
JPanel panel = new JPanel();
bt1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tf.setText(pwd.getPassword());
}
});
bt2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
counter = pwd.length();
tf.setText(counter);
}
});
panel.setLayout(new FlowLayout()); // Add buttons and TextField to the panel
panel.add(tf);
panel.add(pwd);
panel.add(bt1);
panel.add(bt2);
window.getContentPane().add(panel, BorderLayout.CENTER);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {
}
JavaPasswordCount application = new JavaPasswordCount();
}
}
答案 0 :(得分:2)
更改此行:
counter = pwd.length();
tf.setText(counter);
到
int counter = pwd.getPassword().length;
tf.setText(String.valueOf((counter)));
和这个
tf.setText(pwd.getPassword());
要
tf.setText(pwd.getPassword().toString());