View Single Post
  #1 (permalink)  
Old 07-16-2007, 06:22 PM
paul paul is offline
Member
 
Join Date: Jul 2007
Posts: 26
paul is on a distinguished road
Problem with vector, java.lang.ClassCastException
Currently I am trying to save and load a number of objects from a vector, however I have had no luck due to a java.lang.ClassCastException error.
I have been puzzed by this error for hours now, and have tried many methods without success.

Code:
import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.io.*; class testing extends JFrame implements ActionListener { Container c2; JButton addbutton; JButton savebutton; JButton openbutton; String name; String age; Vector vector; public static void main (String args[]){new testing();} public testing() { vector = new Vector(); name = "Name"; age = "Age"; makeButtons(); setSize(200, 150); setVisible(true); } public void makeButtons() { c2 = getContentPane(); c2.setLayout(new FlowLayout()); addbutton = new JButton("Add"); c2.add(addbutton); addbutton.addActionListener(this); savebutton = new JButton("Save"); c2.add(savebutton); savebutton.addActionListener(this); openbutton = new JButton("Open"); c2.add(openbutton); openbutton.addActionListener(this); } public void actionPerformed(ActionEvent eh) { String action = eh.getActionCommand(); if(action.equals("Add")) { Vector r = new Vector(); r = createElement(); vector.addElement(r); } else if(action.equals("Save")) { try { System.out.println("Writing Object"); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("test.tmp")); for(int i=0; i<vector.size(); i++) { Person temp = (Person) vector.elementAt(i); out.writeObject(temp); } out.close(); } catch(Exception e){e.printStackTrace();} } else if(action.equals("Open")) { try { System.out.println("Reading Object"); ObjectInputStream in = new ObjectInputStream(new FileInputStream("test.tmp")); while(true) { Person temp = (Person) in.readObject(); vector.addElement(temp); } } catch(Exception e ){e.printStackTrace();} } System.out.println(vector); } public Vector createElement() { Vector t = new Vector(); Person p = new Person(name, age); t.addElement(p.name); t.addElement(p.age); return t; } class Person implements Serializable { String name; String age; public Person(String name, String age) { this.name = name; this.age = age; } } }
Reply With Quote
Sponsored Links