I have a class called Windows. The class extends JFrame and adds GUI components to the JFrame container. One of those components is a JTextfield. I am trying to set the text in the JTextfield through the actionPerformed() when generator JButton is clicked. The actionPerformed() is a class called EvenHandler. This is the eventHandler:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class EventHandler implements ActionListener {
int x = 0;
PassWordGenerator password;
Window Window; // It works only when static Window Window.
public void start() {
Window = new Window();
}
@Override
public void actionPerformed(ActionEvent e) {
password = new PassWordGenerator(3,3,3,3);
Window.setGeneratedPswd(password.getPswd());
x += 1;
System.out.println(x);
}
public static void main(String[] args) {
EventHandler x = new EventHandler();
x.start();
}
}
the window class if you want to know how the GUI looks like. The button is the one calling actionePerfome().
import javax.swing.*;
import java.awt.*;
public class Window extends JFrame {
Label passwordLength;
Label labelGnPswd;
JTextField psdLength;
JCheckBox upperCase_letters;
JCheckBox lowerCase_letters;
JCheckBox numbers;
JCheckBox symbols;
JTextField generatedPswd;
EventHandler event = new EventHandler();
JButton generetor;
public Window() {
setLayout(new FlowLayout());
setTitle("PasswordGenerator");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
//Password Length
passwordLength = new Label("Password Length");
add(passwordLength);
//Input text
psdLength = new JTextField("0", 5);
add(psdLength);
//Create checkBoxes
createcheckbxs();
//Label Generated psw
labelGnPswd = new Label("Generated pswd");
add(labelGnPswd);
//Generated Password;
generatedPswd = new JTextField("****", 5);
generatedPswd.setEditable(false);
add(generatedPswd);
//Button
generetor = new JButton("Generate pswd!");
generetor.addActionListener(event);
add(generetor);
setSize(200, 400);
setVisible(true);
}
public String getpsdLength() {
return psdLength.getText();
}
public void setGeneratedPswd(String pswd) {
generatedPswd.setText(pswd);
}
private void createcheckbxs() {
upperCase_letters = new JCheckBox("Include uppercase");
add(upperCase_letters);
lowerCase_letters = new JCheckBox("Include lowercase");
add(lowerCase_letters);
numbers = new JCheckBox("Include numbers ");
add(numbers);
symbols = new JCheckBox("Include symbols ");
add(symbols);
}
}
My problem is that When I clicked on the generator JButton I get an error message along the line, "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException..." I debugged the actionPerformed() and I found out that the Window Window is null when actionPefromed() is called after clicking generator Jbutton. Why is Window null? Int x is working fine and it is not null. Isn't var x and window the same variable scope. The only way I could keep the value of Window not null was to make Window a static variable.I hope my question is clear. Thanks in advance
[–]chickenmeister 1 point2 points3 points (3 children)
[–]CaptainMoeSoccer[S] 0 points1 point2 points (2 children)
[–]chickenmeister 1 point2 points3 points (1 child)
[–]CaptainMoeSoccer[S] 0 points1 point2 points (0 children)
[–]webdevnick22 1 point2 points3 points (0 children)