📄 startframe.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 + -