2017-05-02 2 views
1

Un JLabel en java peut être transformé en une chaîne (en utilisant .toString())Java convertir la chaîne à JLabel

De même que je veux prendre cette chaîne que j'ai lu à partir d'un fichier et de le transformer de nouveau dans un JLabel nouveau.

(si cela est impossible serait leur être une autre façon de stocker un JLabel dans un fichier, puis recréer exactement à nouveau)

+0

Vous pouvez jeter un oeil à [JAXB] (https://docs.oracle.com/javase/tutorial/jaxb/intro/), mais '' [supports JLabel' XMLEncoder'] (https://docs.oracle.com/javase/8/docs/api/java/beans/XMLEncoder.html) – MadProgrammer

+0

Merci! Les deux semblent correspondre à mon objectif, que suggérez-vous que j'utilise? – JFreeman

+0

Je me pencherais vers 'XMLEncoder' pour commencer avec – MadProgrammer

Répondre

1

Je suis d'accord avec MadProgrammer que XMLEncoder et XMLDecoder sont la voie à suivre.

This answer vous donne une bonne idée de la façon d'utiliser les deux, mais j'ai changé ce code pour utiliser spécifiquement JLabel.

String toString(JLabel jl) { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    XMLEncoder e = new XMLEncoder(baos); 
    e.writeObject(jl); 
    e.close(); 
    return new String(baos.toByteArray()); 
} 

JLabel fromString(String str) { 
    XMLDecoder d = new XMLDecoder(new ByteArrayInputStream(str.getBytes())); 
    JLabel label = (JLabel) d.readObject(); 
    d.close(); 
    return label; 
}