JAXB a listy typu JTExtArea i Line2D

0

Czy istnieje sposób na zapisanie przy pomocy JAXB, list typu JTextArea i Line2D? Próbowałem podobnie jak w przypadku list typu String, ale tak się nie da.

import java.awt.geom.Line2D;
import java.io.File;
import java.util.ArrayList;
import javax.swing.JFileChooser;
import javax.swing.JTextArea;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
 
public class Test
{ 
    Listy listy;
    ArrayList<JTextArea> listaPol;
    ArrayList<Line2D> listaLinii;
 
    public static void main(String[] args)
    {
        Test test = new Test();
        test.zapiszListeDoXML();    
    }    
 
    public void zapiszListeDoXML()
    {
    	JTextArea pole1 = new JTextArea();
    	pole1.setBounds(400,400,200,100);
    	
    	JTextArea pole2 = new JTextArea();
    	pole2.setBounds(400,800,200,100);
    	
        listaPol = new ArrayList<JTextArea>();
        listaPol.add(pole1);
        listaPol.add(pole2);
        
        Line2D linia1 = new Line2D.Double(100,100,300,100);
    	Line2D linia2 = new Line2D.Double(100,200,300,200);
        
        listaLinii = new ArrayList<Line2D>();
        listaLinii.add(linia1);
        listaLinii.add(linia2);
 
        listy = new Listy();
        listy.setListaPol(listaPol);
        listy.setListaLinii(listaLinii);
 
          JFileChooser fileCh = new JFileChooser();
 
           if (fileCh.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
           {
               File nazwaPliku = fileCh.getSelectedFile();    
 
             try 
             {
                JAXBContext jaxbContext = JAXBContext.newInstance(Listy.class);
                Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
                jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
 
                jaxbMarshaller.marshal(listy, nazwaPliku);
                jaxbMarshaller.marshal(listy, System.out);
             }
             catch (JAXBException f) 
             {
                f.printStackTrace();
             }  
          }
    }
}
import java.awt.geom.Line2D;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTextArea;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;


@XmlRootElement(name = "Listy")
public class Listy
{
    List<JTextArea> listaPol = new ArrayList<JTextArea>();
   
    public List<JTextArea> getListaPol() 
    {
        return listaPol;
    }
 
    @XmlElementWrapper(name = "listaPol")
	@XmlElement(name = "Value")  
    public void setListaPol(List<JTextArea> listaPol) 
    {
        this.listaPol = listaPol;
    }	
	
    List<Line2D> listaLinii = new ArrayList<Line2D>();
    
    public List<Line2D> getListaLinii() 
    {
        return listaLinii;
    }
 
    @XmlElementWrapper(name = "listaLinii")
	@XmlElement(name = "Value")  
    public void setListaLinii(List<Line2D> listaLinii) 
    {
        this.listaLinii = listaLinii;
    }	   
}
0

Pomoże ktoś? Nie wiem, czy robię coś źle, czy nie da się zapisać w JAXB, list tych typów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1