I'm relatively new to Java and I am trying to make a login page for my desktop application. I have a thread called "listen" that should be called when the application first opens, its job is to check weather the username and password fields are not blank.
public class Login extends JFrame implements Runnable {
private JPanel contentPane;
private JTextField txtUsername;
private JPasswordField pwdPassword;
private JLabel lblUsername;
private JButton btnLogin;
private JLabel lblPassword;
private JCheckBox cboxRemember;
private Thread run, listen;
private boolean running = true;
public Login() {
createWindow();
run = new Thread(this, "Running");
running = true;
run.start();
}
private void createWindow() {
//application layout and actionListener for login button
}
public void run() {
listen();
}
public void listen() {
listen = new Thread("Listen") {
public void run() {
while (running) {
if (txtUsername.getText().equals("") || pwdPassword.getText().equals("")) btnLogin.setEnabled(false);
else btnLogin.setEnabled(true);
}
}
};
listen.start();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login frame = new Login();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
Whenever i try to execute my code the 'listen' thread throws a NullPointerException on this line if (txtUsername.getText().equals("") || pwdPassword.getText().equals("")) btnLogin.setEnabled(false);
I'm not sure what am I doing wrong, any help will be appreciated, thanks.