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

📄 startframe.java

📁 BravePiglet.rar 勇敢的猪Java游戏 由本人原创
💻 JAVA
字号:
package com.lovo.pig.view;

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;

import javax.swing.JFrame;
import javax.swing.JPanel;

import com.lovo.pig.util.Images;

/**
 * 显示游戏启动界面
 * @author gonggang
 */
public class StartFrame extends JFrame {
	private static final long serialVersionUID = 3246510361086477150L;
    //图像变换类实例
	private chageImg chgLogoImg;
	//图像工具类
	private Images images;
	//图像只变换一次
	private int delay = 2;
    
	/**
	 * 构造方法
	 */
    public StartFrame() {
    	setTitle("BravePig");
    	setSize(new Dimension(800, 627));
    	this.setLocationRelativeTo(null);
    	this.setResizable(false);
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	
	    chgLogoImg = new chageImg();
	    getContentPane().add(chgLogoImg);  
	    
	    setVisible(true);
	    chgLogoImg.run();
  }

  public static void main(String[] args) {
    new StartFrame();
  }

  
  /**
   * 实现图像变换
   * @author gonggang
   *
   */
  private class chageImg extends JPanel implements Runnable {
	private static final long serialVersionUID = -4671300817819546622L;
	
	private int alpha = 0;//并非图像真实Alpha值(真实Alpha值在0-1之间)
    private int step = 5;//变换幅度,必须是5的倍数,否则真实Alpha值可能越界
    
    private Image imgLogo;//Logo图像
    
    public chageImg() {
      images = Images.getImages();
      imgLogo = images.getImgLogo();//取得Logo图像
    }

    /**
     *改变图像
     */
    public void run() {
      while (true) {
        try {
          Thread.sleep(200);
        }
        catch (Exception e) {
        }
        alpha += step;
        if (alpha > 99 || alpha < 1) {
          step = -step;
          delay --;
          if(delay == 0){
        	  StartFrame.this.dispose();
        	  new MenuFrame();
        	  break;
          }
        }
        repaint();
      }
    }

    public void paintComponent(Graphics g) {
      Dimension size = this.getSize();
      Graphics2D g2d = (Graphics2D) g;
      /**
       * 清除背景
       */
      g2d.setBackground(Color.BLACK);
      g2d.clearRect(0, 0, size.width, size.height);
      /**
       * 设置Alpha值
       */
      try {
        g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
          (float) alpha / 100));
      }
      catch (Exception e) {
        e.printStackTrace();
      }
      /**
       * 绘图并释放资源
       */
      g2d.drawImage(imgLogo, 0, 0, this);
      g2d.dispose();
    }
  }
} 

⌨️ 快捷键说明

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