Portál AbcLinuxu, 27. dubna 2024 03:56
Dobry den, uz druhy den resim zapeklity problem. Programuji prohlizec obrazku. Metoda na jejich nacitani vypada zhruba takto:
private void loadImages(int initialIndex) { for (int i = 0; i < 5; i++) { mediaTracker.addImage(getImage(i), i); try { mediaTracker.waitForID(i); } catch (InterruptedException ex) { ex.printStackTrace(); } } if (mediaTracker.isErrorAny()) { System.out.println("ERROR!"); Object[] f = mediaTracker.getErrorsAny(); for (int j = 0; j < f.length; j++) System.out.println(f[j]); } }
Touto metodou nactu prvnich 5 obrazku z adresare. Poprve vse funguje vyborne, zadny error se nevyskytne. V programu si uzivatel muze zvolit jiny adresar, jehoz fotky si chce prohlizet. V tom pripade mediaTracker procistim:
for (int i = 0; i < imagesCount; i++) mediaTracker.removeImage(getImage(i), i); System.out.println("ERROR="+mediaTracker.isErrorAny());
Take bez chyby. Pote znovu volam metodu loadImages() aby z nove vybraneho adresare nacetla obrazky. Po druhem zavolani se vsak uz vyskytnou chyby a dostanu toto:
ERROR! sun.awt.image.ToolkitImage@ee3aa7 sun.awt.image.ToolkitImage@4cd580 sun.awt.image.ToolkitImage@54f9f1 sun.awt.image.ToolkitImage@e576d4 sun.awt.image.ToolkitImage@dc86eb
Nejdriv jsem myslel, ze to muze byt tim, ze znovu prirazuji obrazky na stejne indexy (coz stejne podle dokumentace jde), tak jsem tam pro jistotu pridal to vymazani imageTrackeru, avsak to na tu chybu nema zadny vliv.
Dokumentaci v MediaTrackeru jsem dukladne celou procetl, ale nenarazil jsem tam na nic, co by mi pomohlo tuto chybu vyresit. Muzete mi prosim poradit?
Tak jak veli zakon schvalnosti, chvilku potom co jsem odeslal tento prispevek s tim, ze chybu uz sam nenajdu, se mi to povedlo. Nakonec se to vubec netykalo MediaTrackeru, ale spatnych cest k obrazkum, proto je MediaTracker nemohl najit.
Ze znacne casti je to ale i vina MediaTrackeru, protoze kdyby z nej bylo mozne dostat textovy popis chyby - neco ve smyslu "File xxx not found" tak by vse bylo mnohem jasnejsi...
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.