我的JTable有一个密码字段编辑器.我想在用户单击编辑另一个字段时,如果文本长度小于8位,则显示错误消息.我尝试过焦点听众.但它不起作用.请帮帮我,因为我刚刚开始使用java swing.
class PasswordEditor extends DefaultCellEditor
{
TextBox m_passWord = new TextBox();
public PasswordEditor() {
super(new TextBox());
}
@Override
public Object getCellEditorValue() {
return this.m_passWord.getText();
}
@Override
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int column) {
Object fieldValue = value;
if(null == fieldValue)
fieldValue = Constants.EMPTY_STRING;
this.m_passWord.addInputMethodListener(new InputMethodListener() {
@Override
public void inputMethodTextChanged(InputMethodEvent event)
{
// TODO Auto-generated method stub
}
@Override
public void caretPositionChanged(InputMethodEvent event)
{
// TODO Auto-generated method stub
}
})
this.m_passWord.addFocusListener(new FocusListener() …Run Code Online (Sandbox Code Playgroud) 如何显示JPasswordField的文本而不是将0设置为echo char?
Java Docs说:
将值设置为0表示您希望在键入文本时看到该文本,类似于标准JTextField的行为.
以下结果导致不兼容的类型错误
outField.setEchoChar(0);
Run Code Online (Sandbox Code Playgroud)
wheras
outField.setEchoChar('0');
Run Code Online (Sandbox Code Playgroud)
只需将0设置为echo char(每个数字显示0).
在JTextField上使用JPasswordField的原因是我想更改echo char并使用其他方法隐藏密码.
谢谢!
我有一个JTextField.这JTextField将用于获取用户的名称和密码.因此,如果它获取用户名,我将显示用户在"文本"字段中键入的内容.但是如果他插入密码,该字段不应显示密码(而是显示*字符).
如何让JTextField隐藏他/她键入的字符?
伪代码:
If (usernameBool!=true) {
// Display normal text - user is able to see the password
} else {
// This is going to be a password field, so i need to not show the password to the user instead show it as ******* instead.
}
Run Code Online (Sandbox Code Playgroud)
注意:我不想JPasswordField用于此
我正在使用jPasswordFieldjava来制作登录系统.
我用于jTextField输入名称和jPasswordField密码.我想在我的程序中创建一个"显示字符"选项,允许用户查看他在密码字段中输入的字符.
我试过了
但这不起作用,因为它以酯(*****)形式显示所有内容.请帮忙...
这是我使用 JDBC 连接的登录表单的代码,代码没有错误,但是当我运行它时,它总是转到 else 语句
Connection con;
Statement st;
ResultSet rs;
try{
Class.forName("java.sql.Driver");
con=DriverManager.getConnection ("jdbc:mysql://localhost/database","root","password");
st=con.createStatement();
rs=st.executeQuery("select * from users;");
while(rs.next()){
String userID=rs.getString("userID");
String password=rs.getString("password");
if(userID.equals(txtuserID.getText())
&& (password.equals(txtpassword.getPassword())) {
// ***HERE IS MY PROBLEM I WANT TO CHECK IF WHATS IN THE
// TEXT FIELD OR PASSWORD FIELD IS THE SAME FROM MySQL***
JOptionPane.showMessageDialog(null,"you have logged in");
new MainForm().setVisible(true);
} else {
JOptionPane.showMessageDialog(null,"Incorrect username and password");
}
}
} catch(Exception e) {
JOptionPane.showMessageDialog(null,"Error in Connectivity: " +e.getMessage());
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个带有JPasswordField的小applet,我想知道是否可以保护我的JPasswordField的内容,以防用户的PC被键盘记录器攻击...
我知道Java无法进行内核级操作,因此无法加密用户的键盘.最终还有其他替代解决方案吗?
非常感谢.
我的程序在初始化程序之前从用户获取用户名和密码验证,因此我创建了一个登录按钮,我将ActionListener关联到以下所示
login.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
if(txtUserName.getText().equals("Suraj") && (txtPwd.getPassword().toString()).equals("s123")){
dispose();
TimeFrame tFrame = new TimeFrame(userName);
tFrame.setVisible(true);
tFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
tFrame.setLayout(new GridLayout());
} else {
JOptionPane.showMessageDialog(null,"User name or password don't match","Acces Denied", JOptionPane.ERROR_MESSAGE);
}
Run Code Online (Sandbox Code Playgroud)
现在出现的问题是即使输入正确的密码,程序也会显示错误消息
智者
当我们在任何帐户中输入密码时,字符不会显示给我们.我创建了一个标签为"password"的JTextField.我能做什么,当我在这个JTextField中输入字符时,它们会显示出来"***********"?
在下面的代码中,如果我调用password.setEchoCar(char)方法,则文件运行正常.为什么我不能在它上方创建对象时调用它?
shoudlnt是一个范围问题,我检查了方法的javadoc,它似乎是指定非默认密码字符的正确方法.
谢谢
import javax.swing.*;
public class Authenticator extends javax.swing.JFrame {
JTextField username = new JTextField(15);
JPasswordField password = new JPasswordField(15);
password.setEchoChar('%');
JTextArea comments = new JTextArea(4, 15);
JButton ok = new JButton("OK");
JButton cancel = new JButton("Cancel");
public Authenticator () {
super("Account Information");
setSize(300, 220);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
JLabel usernameLabel= new JLabel("Username: ");
JLabel passwordLabel = new JLabel("Password: ");
JLabel commentsLabel = new JLabel("Comments: ");
comments.setLineWrap(true);
comments.setWrapStyleWord(true);
pane.add(usernameLabel);
pane.add(username);
pane.add(passwordLabel);
pane.add(password);
pane.add(commentsLabel);
pane.add(comments);
pane.add(ok); …Run Code Online (Sandbox Code Playgroud) 我知道人们以前曾问过这个问题,但是他们没有使用.equals()。所以我要再问一遍,为什么我有两个字符串,但是当我将它们与之比较时,.equals()我得到了错误。这两个字符串是1234(passwordField2.getPassword()和String s = bufferedreader.readLine()。),我已经使用s.toCharArray对其进行了比较,这是相同的。我尝试将它们都打印出来
1234
1234
有人知道为什么会这样吗?谢谢!