Du kan forsøge at benytte nedenstående metode der forsøger at lave en total kopi af dit serialiserbare objekt, hvilket JPanel er. Om det virker afhænger dog af hvilke komponenter du har tilføjet til dit panel; hvis nogle af dem ikke er serialiserbare har du et problem. I så fald kan du prøve lbhansens forslag, men så skal du skræddersy en ny løsning hver gang du laver noget nyt og det bliver nok lidt ineffektivt. Metoden kan bruges således: JPanel panel = ...; JPanel copyPanel = (JPanel)deepClone(panel); Her er kildeteksten: public static Serializable deepclone( final Serializable o ) throws IOException, ClassNotFoundException { final PipedOutputStream pipeout = new PipedOutputStream(); PipedInputStream pipein = new PipedInputStream( pipeout ); Thread writer = new Thread() { public void run() { ObjectOutputStream out = null; try { out = new ObjectOutputStream( pipeout ); out.writeObject( o ); } // try catch( IOException e ) { } // catch finally { try { out.close(); } // try catch( Exception e ) { } // catch } // finally } // run }; writer.start(); ObjectInputStream in = new ObjectInputStream( pipein ); Serializable a = (Serializable)in.readObject(); in.close(); return a; } // deepclone
Jeg har fundet en anden løsning i mellemtiden, da jeg er lidt presset mht. eksamensprojekt. Men dit svar ser nydeligt ud, kigger på det når jeg får tid :-)
Du får pointene for dit tidsbrug....thx
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.