Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8075261
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T14:55:55+00:00 2026-06-05T14:55:55+00:00

now I need some help with Serializing my arraylist. Now I have managed to

  • 0

now I need some help with Serializing my arraylist. Now I have managed to get the serializing aspect working (I think at least), now my problem lays with de-serializing the object. I am making a small address book program. I have a comboBox that stores the addresses with three textboxes above where the user enters: name, address, and phone number. For testing purposes I then have a save and load button. The save button saves the contacts, and the load button loads the previous sessions contacts. Now everything but the de-serializing works and I would like to know how to proceed with it.

My code is bellow:

import java.awt.EventQueue;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;


public class Address_Book {

    private JFrame frame;
    private JTextField newName;
    private JTextField newAddress;
    private JTextField newPhoneAddress;
    ArrayList<Book> test = new ArrayList<Book>();
    ArrayList<Book> array = new ArrayList<Book>();

    File addBook = new File("addBook.txt");

    final JComboBox<String> comboBox = new JComboBox<String>();
    final DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Address_Book window = new Address_Book();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public Address_Book() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {         
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 250);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        newName = new JTextField();
        newName.setBounds(10, 29, 107, 20);
        frame.getContentPane().add(newName);
        newName.setColumns(10);

        JLabel lbl1 = new JLabel("Enter New Name:");
        lbl1.setBounds(10, 11, 107, 14);
        frame.getContentPane().add(lbl1);

        JLabel lbl2 = new JLabel("Enter New Address:");
        lbl2.setBounds(136, 11, 130, 14);
        frame.getContentPane().add(lbl2);

        newAddress = new JTextField();
        newAddress.setColumns(10);
        newAddress.setBounds(136, 29, 107, 20);
        frame.getContentPane().add(newAddress);

        newPhoneAddress = new JTextField();
        newPhoneAddress.setColumns(10);
        newPhoneAddress.setBounds(262, 29, 162, 20);
        frame.getContentPane().add(newPhoneAddress);

        JLabel lbl3 = new JLabel("Enter New Phone number:");
        lbl3.setBounds(262, 11, 162, 14);
        frame.getContentPane().add(lbl3);

        JButton btnAddNewContact = new JButton("Add new contact");
        btnAddNewContact.addMouseListener(new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent arg0) {
                test.add((new Book(newName.getText(), newAddress.getText(), newPhoneAddress.getText())));

                //mergesort.mergesort(test, 0, test.size() - 1);

                model.removeAllElements();
                for(int i=0; i < test.size();i++){
                    model.addElement(test.get(i).getContact()); 
                }
                comboBox.setModel(model);

                newName.setText(""); 
                newAddress.setText("");
                newPhoneAddress.setText("");
            }
        });
        btnAddNewContact.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            }
        });
        btnAddNewContact.setBounds(10, 53, 414, 23);
        frame.getContentPane().add(btnAddNewContact);

        JLabel lbl4 = new JLabel("Current Contacts:");
        lbl4.setBounds(10, 87, 107, 14);
        frame.getContentPane().add(lbl4);

        frame.getContentPane().add(comboBox);


            comboBox.setModel(model);
            comboBox.setBounds(10, 101, 414, 20);
            comboBox.setSelectedIndex(test.size()-1);

            JButton btnLoad = new JButton("Load");
            btnLoad.addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent e) {

                    try {
                        /* Read objects */

                        FileInputStream in = new FileInputStream(addBook);
                        ObjectInputStream readIn = new ObjectInputStream(in);

                        array = (ArrayList<Book>) readIn.readObject();
                        readIn.close(); 

                        for(int i=0; i < array.size();i++){
                            model.addElement(array.get(i).getContact());    
                        }
                        comboBox.setModel(model);
                    }catch(Exception e1){
                        e1.printStackTrace();
                    }

                }
            });
            btnLoad.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                }
            });
            btnLoad.setBounds(10, 132, 89, 23);
            frame.getContentPane().add(btnLoad);

            JButton btnSave = new JButton("Save");
            btnSave.addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent arg0) {
                    /* write objects */
                    try{

                        FileOutputStream out = new FileOutputStream(addBook);
                        ObjectOutputStream writeAdd = new ObjectOutputStream(out);
                        writeAdd.writeObject(test);
                        writeAdd.close();

                    }catch(Exception e){

                    }
                }
            });
            btnSave.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                }
            });
            btnSave.setBounds(109, 132, 89, 23);
            frame.getContentPane().add(btnSave);
    }
}

Here is my object:

public class Book implements Comparable {
     private String flName, Address, pNumber;

    public Book(String Name, String address, String phoneNumber ){
        setFlName(Name);
        setAddress(address);
        setpNumber(phoneNumber);
    }

    public String getpNumber() {
        return pNumber;
    }

    public void setpNumber(String pNumber) {
        this.pNumber = pNumber;
    }

    public String getAddress() {
        return Address;
    }

    public void setAddress(String address) {
        Address = address;
    }

    public String getFlName() {
        return flName;
    }

    public void setFlName(String flName) {
        this.flName = flName;
    }  

    public String getContact() {
        return flName + ", " + Address + ", " + pNumber;
    }

    public int compareTo(Object c) {
        Book testBook = (Book)c;

        if (testBook.getFlName().compareTo(this.getFlName()) < 0){
            return(-1);
        }else if(testBook.getFlName().compareTo(this.getFlName()) == 0){
            return(0);
        }else{
            return(1);
        }
    }

}

This next splotch of code is in my Address_Book class, the first code I gave you, this is just to make it easier to find where I am loading it from.

JButton btnLoad = new JButton("Load");
            btnLoad.addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent e) {

                    try {
                        /* Read objects */

                        FileInputStream in = new FileInputStream(addBook);
                        ObjectInputStream readIn = new ObjectInputStream(in);

                        array = (ArrayList<Book>) readIn.readObject();
                        readIn.close(); 

                        for(int i=0; i < array.size();i++){
                            model.addElement(array.get(i).getContact());    
                        }
                        comboBox.setModel(model);
                    }catch(Exception e1){
                        e1.printStackTrace();
                    }

                }
            });
            btnLoad.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                }
            });
            btnLoad.setBounds(10, 132, 89, 23);
            frame.getContentPane().add(btnLoad);

Thank you for your time, if you have any questions don’t hesitate to ask. 🙂

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T14:55:58+00:00Added an answer on June 5, 2026 at 2:55 pm
    • Your Book class doesn’t implement Serializable. Fix this as this is the cause for your exception and is thus the primary reason your current attempt to serialize the ArrayList<Book> is failing.
    • Google for and read a serialization tutorial.
    • Again, don’t use MouseListeners on JButtons when you should be using an ActionListener. This isn’t causing your problem but will cause future problems if not fixed. Please read the Java tutorials on how to use JButtons as it’s all very explained there.
    • Again, when you try to implement a new complex functionality to an already complex program, do it in isolation of the complex program first so as to isolate and fix any problems before adding it to the greater program. This is doubly true if your new code causes an error.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

i'm new at IPhone SDK Developing and now i need some help. I have
Greetings good people - I need some help. I have until now buildt web-pages
I have some complicated, problem to be solved. Now I need to write such
I need some help with my problem. I have created a list of all
I have a problem and need some help. My application uses outlook to send
I need some help. Right now i have done a file search that will
I need some help. Here's what I'm getting right now: img ref I need
I got some code off the Internet and now I just need help to
Suppose i have 1kk records in my database. Now i need to select some
I have this regex working but now need to allow numbers without the decimal

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.