Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to check and Entry before adding and store it in an Array in Java?
    text
    copied!<p>good day.. i have an Address Book Program... it runs properly but it doesn't check if the user input was already stored in an array.. want i want to do is... after getting the user input compare it to the stored entry in an array and when it was unique... it will allow the user to add a new entry...</p> <p>here's my old code in addEntry():</p> <p>public void addEntry() {</p> <pre><code>entry[counter] = new AddressBookEntry(); entry[counter].setName(JOptionPane.showInputDialog("Enter name: ")); entry[counter].setAdd(JOptionPane.showInputDialog("Enter add: ")); entry[counter].setPhoneNo(JOptionPane.showInputDialog("Enter Phone No.: ")); entry[counter].setEmail(JOptionPane.showInputDialog("Enter E-mail: ")); counter++; </code></pre> <p>}</p> <p>and here's what i am planning to do but it turns out to be an ERROR:</p> <p>public void addEntry() {</p> <pre><code> entry[counter] = new AddressBookEntry(); SName = JOptionPane.showInputDialog("Enter name: ");//&lt;-- asks user for the name if (!entry[counter].getName().equals(SName)) {//&lt;--compare entry[counter].setName(JOptionPane.showInputDialog("Enter name: ")); entry[counter].setAdd(JOptionPane.showInputDialog("Enter add: ")); entry[counter].setPhoneNo(JOptionPane.showInputDialog("Enter Phone No.: ")); entry[counter].setEmail(JOptionPane.showInputDialog("Enter E-mail: ")); counter++; } } </code></pre> <p>This is the error: Exception in thread "main" java.lang.NullPointerException at AddressBook.addEntry(AddressBook.java:57) at AddressBook.main(AddressBook.java:28) Java Result: 1 BUILD SUCCESSFUL (total time: 4 seconds)</p> <p>the output only ask user to input for a name and then exit automatically... this might be a logical error... but i don't know what is the possible solution</p> <p>Need Help please thanks</p> <p>here's my complete code:</p> <pre><code>import javax.swing.JOptionPane; import javax.swing.JTextArea; public class AddressBook { private AddressBookEntry entry[]; private int counter; private String SName; private int notfound = 0; public static void main(String[] args) { AddressBook a = new AddressBook(); a.entry = new AddressBookEntry[100]; int option = 0; try { while (option != 5) { String content = "Choose an Option\n\n" + "[1] Add an Entry\n" + "[2] Delete an Entry\n" + "[3] Update an Entry\n" + "[4] View all Entries\n" + "[5] View Specific Entry\n" + "[6] Exit"; option = Integer.parseInt(JOptionPane.showInputDialog(content)); switch (option) { case 1: a.addEntry(); break; case 2: a.deleteEntry(); break; case 3: a.editEntry(); break; case 4: a.viewAll(); break; case 5: a.searchEntry(); break; case 6: System.exit(1); break; default: JOptionPane.showMessageDialog(null, "Invalid Choice!"); } } } catch (NumberFormatException e) { JOptionPane.showMessageDialog(null, "Please Choose a Number in the displayed Menu"); } } public void addEntry() { entry[counter] = new AddressBookEntry(); SName = JOptionPane.showInputDialog("Enter name: "); if (entry[counter] == null &amp;&amp; entry[counter].getName() == null &amp;&amp; !entry[counter].getName().equals(SName)) { entry[counter].setName(JOptionPane.showInputDialog("Enter name: ")); entry[counter].setAdd(JOptionPane.showInputDialog("Enter add: ")); entry[counter].setPhoneNo(JOptionPane.showInputDialog("Enter Phone No.: ")); entry[counter].setEmail(JOptionPane.showInputDialog("Enter E-mail: ")); counter++; } } /*public void addEntry() { entry[counter] = new AddressBookEntry(); entry[counter].setName(JOptionPane.showInputDialog("Enter name: ")); entry[counter].setAdd(JOptionPane.showInputDialog("Enter add: ")); entry[counter].setPhoneNo(JOptionPane.showInputDialog("Enter Phone No.: ")); entry[counter].setEmail(JOptionPane.showInputDialog("Enter E-mail: ")); counter++; }*/ public void viewAll() { String addText = " NAME\tADDRESS\tPHONE NO.\tE-MAIL ADD\n\n"; int nonNull = 0; for (int i = 0; i &lt; entry.length; i++) { if (entry[i] != null) { addText = addText + entry[i].getInfo() + "\n"; nonNull++; } if (nonNull == counter) { break; } } JOptionPane.showMessageDialog(null, new JTextArea(addText)); } public void searchEntry() { SName = JOptionPane.showInputDialog("Enter Name to find: "); searchMethod(); } public void searchMethod() { for (int i = 0; i &lt; counter; i++) { if (entry[i].getName().equals(SName)) { JOptionPane.showMessageDialog(null, entry[i].getInfo2()); notfound = 0; break; } else { notfound++; } } if (notfound != 0) { JOptionPane.showMessageDialog(null, "Name Not Found!"); } } public void editEntry() { SName = JOptionPane.showInputDialog("Enter Name to edit: "); for (int i = 0; i &lt; counter; i++) { if (entry[i].getName().equals(SName)) { entry[i] = new AddressBookEntry(); entry[i].setName(JOptionPane.showInputDialog("Enter new name: ")); entry[i].setAdd(JOptionPane.showInputDialog("Enter new add: ")); entry[i].setPhoneNo(JOptionPane.showInputDialog("Enter new Phone No.: ")); entry[i].setEmail(JOptionPane.showInputDialog("Enter new E-mail: ")); notfound = 0; break; } else { notfound++; } } if (notfound != 0) { JOptionPane.showMessageDialog(null, "Name Not Found!"); } } public void deleteEntry() { SName = JOptionPane.showInputDialog("Enter Name to delete: "); if (SName == null) { return; } for (int i = 0; i &lt; counter; i++) { if (entry[i] != null &amp;&amp; SName.equals(entry[i].getName())) { entry[i] = null; JOptionPane.showMessageDialog(null, "Found!"); break; } } } } </code></pre> <p>hope you can help me... because i still dont understand what to do. So i just show my complete code... thanks for your patience guys...</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload