Dúvida com Graphics2D

Pessoal, como eu faço pra serializar objetos da classe Graphics2D, já que ela não implementa Serializable?
Dei uma procura e não achei nada sobre isso.

Acho que a pergunta mais adequada é: por que você está tentando serializar objetos desse tipo?

De posse dessa resposta poderemos talvez dar uma solução mais focada

O programa permite que o usuário monte a tela com ele quiser. Entre os objetos que ele tem pra montar a tela são quadros, linhas, etc. que são da classe Grapchis2D. Digamos que ele fez uma tela que será utilizada como base para telas futuras. Então ele salva essa tela com todos os desenhos, imagens, textos, etc. e depois basta carregar e fazer as alterações para se adequar ao seu novo uso.

Se ajudar, eu estou mandando salvar um JPanel e nele estão esses objetos Graphics2D.

É melhor pegar sua classe, fazê-la implementar Externalizable, e efetuar a serialização manual de todos os objetos que compõem sua tela.

Dei uma pesquisada sobre Externalizable, achei alguns exemplos como esse.

Mas pelo que entendi ele precisa que externalizable seja implementada na classe, igual serializable. Como eu vou fazer para implementar externalizable em Graphics2D?

Eu não estou mencionando Graphics2D e sim a sua tela.

Certo, mas e quando chegar na classe Graphics2D? Eu uso externalizable na minha classe, que vai usar nos atributos do objeto, e caso eles sejam objetos usaram neles também e assim vai… Pelo menos é assim com serializable.

Ou então externalizable não tem esse empecilho?

É assim. Suponha que você tenha uma classe que implemente Externalizable.

Quando você tem uma classe dessas, ela é serializável como as outras, mas aí o mecanismo de serialização do Java, em vez de trabalhar automaticamente (ou seja, inspecionando os atributos não "transient" da classe, chamando recursivamente a serialização para os objetos contidos nesse objeto etc.), chama suas rotinas de serialização e desserialização, então você pode montar e desmontar um objeto dessa classe do jeito que bem entender, e incluir na serialização só o que você precisa (outras coisas que podem ser calculadas na hora você calcula na hora).

Por exemplo, a classe HashMap, se não me engano, é assim: em vez de serializar um array que ela tem internamente e que tem um monte de espaços vazios, simplesmente serializa o número de entradas e as entradas (pares de objetos chave -> valor).

Finalmente acho que entendi como fazer certo. Muito obrigado pela ajuda thingol. De qualquer forma, não vou dar por resolvido ainda. Porém creio que não terei mais problemas.