/** * */ package com.javaxyq.core; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.util.Random; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; import com.javaxyq.util.UIUtils; /** * @author dewitt * */ public class LoadingCanvas extends Canvas { private static final long serialVersionUID = -2718674869979598034L; private String loadingText = ""; private Image contentImage; public LoadingCanvas( Image content, int width, int height) { super(width, height); JLabel label = new JLabel(new ImageIcon(content)); label.setSize(content.getWidth(label), content.getHeight(label)); add(label); setContent(content); updateInterval = 50; } public void setContent(Image img) { this.contentImage = img; } public void setLoading(String text) { this.loadingText = text; } public void showImage(Image img, long t) { this.fadeOut(300); // wait waitForFading(); this.loadingText = ""; this.setContent(img); this.fadeIn(200); waitForFading(); // wait ,delay synchronized (FADE_LOCK) { try { Thread.sleep(t); } catch (InterruptedException e) { } } } public void draw(Graphics g, long elapsedTime) { if(contentImage != null) { g.drawImage(contentImage, 0, 0, null); }else { //g.setColor(Color.LIGHT_GRAY); //g.fillRect(0, 0, getWidth(), getHeight()); g.clearRect(0, 0, getWidth(), getHeight()); } // draw fade // g.setColor(new Color(0, 0, 0, alpha)); // g.fillRect(0, 0, getWidth(), getHeight()); // g.setFont(UIUtils.TEXT_FONT); // drawCursor(g,elapsedTime); // drawDebug(g); // drawDownloading(g); g.setColor(Color.WHITE); g.setFont(new Font("������κ", Font.PLAIN, 20)); g.drawString(loadingText, 250, 420); //System.out.println("draw loading ..."); super.draw(g, elapsedTime); } protected String getMusic() { Random rand = new Random(); String[] files = new String[] {"1091","1514","1070","1193"}; return ("music/"+files[rand.nextInt(files.length)]+".mp3"); } }