JAXB a listy typu JTExtArea i Line2D

Brfg
2016-09-22 15:39
Brfg
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;
    }      
}

Pozostało 580 znaków

Brfg
2016-09-26 15:06
Brfg
0

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

Pozostało 580 znaków

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