Results 1 to 2 of 2
  1. #1
    warchieflll is offline Member
    Join Date
    Dec 2010
    Posts
    55
    Rep Power
    0

    Question Drawing Serializable, how to save/load?

    Hello all!

    I've made a program where you could click points, and a line will appear between them. In this way you could make drawings (using ArrayList of Points). Now I want to save the drawing, and load the drawing. I made the class 'Tekening' Serializable. I'll post part of the Panel class here, just to make sure you understand the names.

    I think I tried the wrong ting to save/load. I already tried to save the Points, but didn't work... Here is the code as I have it now.

    Java Code:
    package tekenApplicatie;
    
    public class TekenPaneel extends JPanel implements ActionListener, MouseListener, KeyListener, MouseMotionListener
    {
      private ArrayList<Tekening> tekeningen = new ArrayList();
      private Tekening huidigeTekening, tekeningtest;
      private boolean links = false, rechts = false, omhoog = false, beneden = false;
      private Random random = new Random();
      private Timer timer = new Timer(10, this);
      private JFrame venster;
      private FileDialog dialoogvenster;
      private JButton openKnop, saveKnop;
    
      public TekenPaneel()
      {
        nieuweTekening();
        addMouseListener(this);
        setFocusable(true);
        addMouseMotionListener(this);
        addKeyListener(this);
        this.timer.start();
    
    	saveKnop = new JButton("Bewaar als...");
    	saveKnop.addActionListener(this);
    	add(saveKnop);
    	
        openKnop = new JButton("Open tekening");
        openKnop.addActionListener(this);
        add(openKnop);
     }
    
      
      public void nieuweTekening()
      {
        int red = this.random.nextInt(256);
        int green = this.random.nextInt(256);
        int blue = this.random.nextInt(256);
        Color kleur = new Color(red, green, blue);
    
        huidigeTekening = new Tekening(kleur);
        tekeningen.add(huidigeTekening);
      }
    
    	public void bestandschrijven()
    	{
    		dialoogvenster =
    			new FileDialog( venster, "Bewaar een bestand", FileDialog.SAVE);
    		dialoogvenster.setVisible( true );
    		String bestandsnaam = dialoogvenster.getFile();
    		if (bestandsnaam != null)
    		{
    			String padEnBestand = dialoogvenster.getDirectory() + bestandsnaam;
    			try
    			{
    			ObjectOutputStream uit = new ObjectOutputStream( new FileOutputStream( padEnBestand ));
    
    			uit.writeObject( huidigeTekening );
    			System.out.println(tekeningen + "HuidigeTekeningenOpslaan:");
    			tekeningen.clear();
    			repaint();
    		    uit.close();
    		    }
    			catch (IOException ex)
    			{
    				JOptionPane.showMessageDialog(
    				null, 
    				"Er is een fout opgetreden bij het schrijven.", 
    				"Bewaren van bestand is mislukt", 
    				JOptionPane.WARNING_MESSAGE);
    			}
    		}
    	}
    	
    	public void bestandlezen()
    	{
    		dialoogvenster =
    			new FileDialog( venster, "Open een bestand", FileDialog.LOAD );
    		dialoogvenster.setVisible( true );
    		String bestandsnaam = dialoogvenster.getFile();
    		if (bestandsnaam != null)
    		{
    			String padEnBestand = dialoogvenster.getDirectory() + bestandsnaam;
    			try
    			{
    				System.out.println( "EERSTE TEST:" + tekeningtest );
    		        ObjectInputStream in = new ObjectInputStream( new FileInputStream( padEnBestand ) );
    		        tekeningtest = (Tekening) in.readObject();
    		        repaint();
    				System.out.println( "TWEEDE TEST:" + tekeningtest );
    				in.close();
    		    }
    			catch (IOException ex)
    			{
    				JOptionPane.showMessageDialog(
    				null, 
    				"Er is een fout opgetreden bij het lezen.", 
    				"Inlezen van het bestand is mislukt", 
    				JOptionPane.WARNING_MESSAGE);
    			}
    			catch ( ClassNotFoundException ex )
    			{
    				JOptionPane.showMessageDialog(
    				null, 
    				"Er is een fout opgetreden bij het lezen.", 
    				"Inlezen van het bestand is mislukt", 
    				JOptionPane.WARNING_MESSAGE);
    			}
    		}
    	}
      
      /**
       * voer de teken uit uit Tekeningen; teken dus de punten en de lijnen.
       */
      public void paintComponent(Graphics g)
      {
        super.paintComponent(g);
    
        for (Tekening tekening : this.tekeningen)
        {
          tekening.teken(g);
        }
      }
    }
    Thanks already!
    Last edited by warchieflll; 01-03-2011 at 05:50 PM.

  2. #2
    warchieflll is offline Member
    Join Date
    Dec 2010
    Posts
    55
    Rep Power
    0

Similar Threads

  1. Save/Load ArrayList
    By chielt in forum New To Java
    Replies: 3
    Last Post: 05-08-2011, 07:12 PM
  2. Load and Save images
    By shakeel in forum Java 2D
    Replies: 13
    Last Post: 12-29-2010, 07:38 PM
  3. Arraylist Save and Load
    By frankycool in forum Advanced Java
    Replies: 1
    Last Post: 11-14-2009, 11:29 PM
  4. save will work but load wont?!?!
    By Sticks_ll in forum New To Java
    Replies: 1
    Last Post: 06-12-2008, 05:19 AM
  5. How to Save/Load Vector to/from file
    By Java Tip in forum java.lang
    Replies: 0
    Last Post: 04-14-2008, 09:37 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •