I am trying to get my GUI layout to work. I can assure that I did everything right, until I kept getting this error:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1097)
at java.awt.Container.add(Container.java:417)
at Calculator$ButtonPanel.<init>(Calculator.java:33)
at Calculator.<init>(Calculator.java:23)
at Calculator.main(Calculator.java:42)
I have literally tried everything and it's still giving me that error. I did similar code like the one below and I never had this problem, which is strange. Here is my code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class Calculator extends JPanel implements ActionListener {
JButton buttons[];
JTextField displayarea;
JFrame fr;
Calculator() {
fr = new JFrame("Calculator");
fr.setLocationRelativeTo(null);
fr.setDefaultCloseOperation(3);
displayarea = new JTextField("0");
displayarea.setHorizontalAlignment(SwingConstants.RIGHT);
displayarea.setEditable(false);
fr.add(displayarea, BorderLayout.NORTH);
fr.add(new ButtonPanel(), BorderLayout.SOUTH);
fr.pack();
fr.setVisible(true);
}
class ButtonPanel extends JPanel {
ButtonPanel() {
setLayout(new java.awt.GridLayout(4, 4));
buttons = new JButton[16];
for (int i = 0; i < buttons.length; i++)
add(buttons[i]);
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {new Calculator();}
}
Any suggestions?