0
点赞
收藏
分享

微信扫一扫

java相册制作,文章中含有源码


package cn.demo2;


import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

/**
* 电子相册
*/
public class MyImage extends JPanel{
//定义一个成员变量
BufferedImage bgImage;
public static void main(String[] args) {


//创建一个窗口
JFrame frame=new JFrame();
//设置一个窗口
frame.setSize(450,750);
//设置标题
frame.setTitle("JAVA电子版相册");
//让窗口居中显示
// frame.setLocation(300,40);
frame.setLocationRelativeTo(null);
//关闭窗口时关闭JVM,否则只是单方面关闭窗口,程序还在运行
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建面板对象
MyImage myImage=new MyImage();
//把面板放到窗口上
frame.add(myImage);
//调用初始化对象存放到窗口
myImage.initImags();

//把图片画到窗口上去,调用绘图方法
//重绘
// myImage.repaint();
// TODO 写方法让 ff 一直变 , 开启新的线程,用来该值
myImage.become();
//显示出这一个窗口
frame.setVisible(true);
}

float ff=0f;
int num=0; //数组下标索引值

//TODO 写方法让 ff 变量一直变
public void become(){
//启动一个线程
new Thread(new Runnable() {
@Override
public void run() {
//一直去改变ff的值
while (true){
//从数组中获取照片
bgImage=images[num];
num+=1;
//考虑数组越界
if(num==4){
num=0;
}
while (true){
if(ff<100f){
ff+=2f;
repaint();
}
else{
ff=0f;
break;
}
//加一个休眠,否则太快了啥也没有,还是白板
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}
}).start();
}

//需要重写父类的方法 提供一个绘图方法
@Override
public void paint(Graphics g) {
super.paint(g);
/**
* 做图片效果,淡入
*/
//转换成子类对象,提供了更多的方法
Graphics2D graphics2D= (Graphics2D) g; //强转

//画什么东西
if(bgImage!=null){

//加入淡入效果
graphics2D.setComposite(AlphaComposite.SrcOver.derive(ff/100f));
//把这张图片画到窗口上去 G
g.drawImage(bgImage,0,0,bgImage.getWidth(),bgImage.getHeight(),null);
}
}
//TODO.1. **存照片** 定义图片类型数组 BufferedImage表示图片对象
BufferedImage [] images=new BufferedImage[4];
/**
* 加载准备好的一些图片
*/
public void initImags(){
try {
//编写一个for循环
for (int i = 1; i <= 4; i++) {
//每循环一次都要去加载一张图片
BufferedImage image = ImageIO.read(MyImage.class.getResource("/cn/demo2/image/" + i + ".jpg"));
//没读取到一张图片对象,把他存放到我们的数组中
images[i-1]=image;
}
//给成员变量赋值 TODO 换照片
bgImage=images[1];
} catch (IOException e) {
e.printStackTrace();
}
}
}

java相册制作,文章中含有源码_开发语言

java相册制作,文章中含有源码_开发语言_02

java相册制作,文章中含有源码_开发语言_03

结果

java相册制作,文章中含有源码_java_04

java相册制作,文章中含有源码_2d_05

java相册制作,文章中含有源码_开发语言_06



举报

相关推荐

0 条评论