/*
*
* Copyright ( c ) 2007 , 2011 , Oracle and / or its affiliates . All rights reserved .
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
*
* - Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
*
* - Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in the
* documentation and / or other materials provided with the distribution .
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS
* IS " AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO ,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL ,
* EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO ,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE , DATA , OR
* PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING
* NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*/
package java2d;
import java.awt.Component;
import java.awt.Image;
import java.awt.MediaTracker;
import java.net.URL;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* A collection of all the demo images found in the images directory .
* Certain classes are preloaded ; the rest are loaded lazily .
*/
@SuppressWarnings("serial" )
public class DemoImages extends Component {
private static final String[] names = {
"bld.jpg" , "boat.png" , "box.png" ,
"boxwave.png" , "clouds.jpg" , "duke.gif" , "duke.running.gif" ,
"dukeplug.png" , "fight.png" , "globe.png" ,
"jumptojavastrip.png" , "magnify.png" , "painting.png" ,
"remove.gif" , "snooze.png" , "star7.gif" , "surfing.png" ,
"thumbsup.png" , "tip.png" , "duke.png" , "print.gif" ,
"loop.gif" , "looping.gif" , "start.gif" , "start2.gif" ,
"stop.gif" , "stop2.gif" , "clone.gif"
};
private static final Map<String, Image> cache =
new ConcurrentHashMap<String, Image>(names.length);
private DemoImages() {
}
public static void newDemoImages() {
DemoImages demoImages = new DemoImages();
for (String name : names) {
cache.put(name, getImage(name, demoImages));
}
}
/*
* Gets the named image using the toolkit of the specified component .
* Note that this has to work even before we have had a chance to
* instantiate DemoImages and preload the cache .
*/
public static Image getImage(String name, Component cmp) {
Image img = null ;
if (cache != null ) {
if ((img = cache.get(name)) != null ) {
return img;
}
}
ClassLoader cl = cmp.getClass().getClassLoader();
URL fileLoc = cl.getResource("images/" + name);
img = cmp.getToolkit().getImage(fileLoc);
MediaTracker tracker = new MediaTracker(cmp);
tracker.addImage(img, 0 );
try {
tracker.waitForID(0 );
if (tracker.isErrorAny()) {
System.out.println("Error loading image " + name);
}
} catch (Exception ex) {
Logger.getLogger(DemoImages.class .getName()).log(Level.SEVERE, null , ex);
}
return img;
}
}
Messung V0.5 in Prozent C=82 H=92 G=86
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-11)
¤
*© Formatika GbR, Deutschland