I am currently having issues with a program I have created with IntelliJ:
Below is code for a login system that returns a java.lang.NullPointerException every time I "successfully" log in:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class LoginForm extends JFrame{
private JButton btnClear;
private JPanel mainLoginPanel;
private JButton btnLogin;
private JTextField txtUsername;
private JPasswordField pwdFieldPassword;
private JLabel lblUsername;
private JLabel lblPassword;
private JPanel txtUsernamePanel;
private JPanel pwdFieldPasswordPanel;
private JPanel buttonsPanel;
private JLabel lblTitle;
static loginAccount[] accountsDatabase = new loginAccount[2];
public static void main (String[] args)
{
LoginForm page = new LoginForm("Admin Login");
page.setVisible(true);
try {
Scanner input = new Scanner(new File("src//adminAccountsCreds.txt"));
input.useDelimiter("\n");
while(input.hasNext())
{
for(int i = 0; i < accountsDatabase.length;i++)
{
String tempName = input.nextLine();
String tempPassword = input.nextLine();
accountsDatabase[i] = new loginAccount(tempName, tempPassword);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public LoginForm(String title)
{
super(title);
txtUsername.setEditable(true);
pwdFieldPassword.setEditable(true);
setContentPane(mainLoginPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension( 400, 400));
pack();
this.setVisible(true);
btnClear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txtUsername.setText("");
pwdFieldPassword.setText("");
}
});
btnLogin.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AuthenticateUser(txtUsername.getText(), new String (pwdFieldPassword.getPassword()));
}
});
}
public void AuthenticateUser(String usernameInput, String passwordInput)
{
boolean matchNotFound = true;
for(int i = 0; i < accountsDatabase.length; i++) {
if (accountsDatabase[i].username.equals(usernameInput) && accountsDatabase[i].password.equals(passwordInput)){
matchNotFound = false;
break;
}
}
if(matchNotFound)
{
System.out.println("Match not found!");
}
else
{
setVisible(false);
dispose();
//System.out.println("Match found!");
StockDatabaseForm nextPage = new StockDatabaseForm("nextPage");
nextPage.setVisible(true);
}
}
private void createUIComponents() {
// TODO: place custom component creation code here
}
}
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class StockDatabaseForm extends JFrame{
private JPanel mainStockDBPanel;
private JTable dataTableStock;
private JPanel dataTablePanel;
private JPanel inputsPanel;
private JButton btnDelete;
private JButton btnAdd;
private JButton btnEdit;
private JPanel btnPanel;
private JPanel itemDataPanel;
private JLabel lblItemName;
private JTextField txtItemName;
private JLabel lblPrice;
private JTextField txtItemPrice;
static StockDatabase stockDatabaseInstance = new StockDatabase();
public static void main(String[] args)
{
StockDatabaseForm page = new StockDatabaseForm("Stock Database");
page.setVisible(true);
try {
Scanner input = new Scanner(new File("src//testStockData.txt"));
input.useDelimiter("\n");
while(input.hasNext())
{
for(int i = 0; i < stockDatabaseInstance.itemsInStock.length;i++)
{
String tempName = input.nextLine();
float tempPrice = Float.valueOf(input.nextLine());
stockDatabaseInstance.itemsInStock[i] = new StockItem(tempName, tempPrice);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public StockDatabaseForm(String title)
{
super(title);
setContentPane(mainStockDBPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension( 500, 500));
pack();
this.setVisible(true);
}
private void createUIComponents() {
// TODO: place custom component creation code here
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "javax.swing.AbstractButton.setText(String)" because "<local8>" is null
at StockDatabaseForm.$$$setupUI$$$(StockDatabaseForm.java)
at StockDatabaseForm.<init>(StockDatabaseForm.java:51)
at LoginForm.AuthenticateUser(LoginForm.java:94)
at LoginForm$2.actionPerformed(LoginForm.java:69)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6614)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6379)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2769)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I have been trying to fix this error. Can someone go through this code and see if they can advise what to do to fix these errors since they are affecting the project's functionality, and my own personal mental health (this is for a uni assignment).