⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 splashscreen.java

📁 网站即时通讯系统
💻 JAVA
字号:
/* Copyright (C) 2003 Adam Olsen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */package com.valhalla.jbother;import java.awt.AWTException;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Rectangle;import java.awt.Robot;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.image.BufferedImage;import java.awt.image.ConvolveOp;import java.awt.image.Kernel;import java.io.IOException;import javax.imageio.ImageIO;import javax.swing.JWindow;import javax.swing.SwingUtilities;/** * Displays a splash screen for a second * * @author Adam Olsen * @version 1.0 */public class SplashScreen extends JWindow {    private javax.swing.Timer splashTimer = new javax.swing.Timer(1500,            new SplashHandler());    private JBotherLoader loader;    private BufferedImage splash = null;    public SplashScreen(JBotherLoader loader) {        this.loader = loader;        BufferedImage image = null;        try {            image = ImageIO.read(getClass().getClassLoader()                    .getResourceAsStream("images/splashimage.png"));        } catch (IOException ex) {            loader.afterSplash();            return;        }        createShadowPicture(image);        setLocationRelativeTo(null);        setVisible(true);        toFront();        splashTimer.start();    }    public void paint(Graphics g) {        if (splash != null) {            g.drawImage(splash, 0, 0, null);        }    }    private void createShadowPicture(BufferedImage image) {        int width = image.getWidth();        int height = image.getHeight();        int extra = 14;        setSize(new Dimension(width + extra, height + extra));        setLocationRelativeTo(null);        Rectangle windowRect = getBounds();        splash = new BufferedImage(width + extra, height + extra,                BufferedImage.TYPE_INT_ARGB);        Graphics2D g2 = (Graphics2D) splash.getGraphics();        try {            Robot robot = new Robot(getGraphicsConfiguration().getDevice());            BufferedImage capture = robot.createScreenCapture(new Rectangle(                    windowRect.x, windowRect.y, windowRect.width + extra,                    windowRect.height + extra));            g2.drawImage(capture, null, 0, 0);        } catch (AWTException e) {        }        BufferedImage shadow = new BufferedImage(width + extra, height + extra,                BufferedImage.TYPE_INT_ARGB);        Graphics g = shadow.getGraphics();        g.setColor(new Color(0.0f, 0.0f, 0.0f, 0.3f));        g.fillRoundRect(6, 6, width, height, 12, 12);        g2.drawImage(shadow, getBlurOp(7), 0, 0);        g2.drawImage(image, 0, 0, this);    }    private ConvolveOp getBlurOp(int size) {        float[] data = new float[size * size];        float value = 1 / (float) (size * size);        for (int i = 0; i < data.length; i++) {            data[i] = value;        }        return new ConvolveOp(new Kernel(size, size, data));    }    /**     * Closes the SplashScreen Closes the SplashScreen after the time has     * expired     *     * @author Adam Olsen     * @version 1.0     */    class SplashHandler implements ActionListener {        /**         * Called by the <code>javax.swing.Timer</code>         */        public void actionPerformed(ActionEvent e) {            SwingUtilities.invokeLater(new Runnable() {                public void run() {                    splashTimer.stop();                    setVisible(false);                    loader.afterSplash();                    dispose();                }            });        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -