用Java写出敬业福小程序:人人扫出敬业福
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
关注公众号后台回复pay或mall获取实战项目资料视频
关注公众号后台回复pay或mall获取实战项目资料视频
整理:Java团长
1、前言
“福”的由来: 姜太公封一大批神仙时,却把自己的妻子叶氏封为穷神,还告诉她说:“有福的地方,你不能去。”从此,家家过年贴福字,就是告诉穷神,我这里是有福的地方,你千万不能进来。福字,就是摆脱穷困、追求幸福的象征。福字之所以倒贴,传说起于清代恭亲王府。那年春节前夕,大管家按例写了几个斗大的“福”字,叫人贴于王府的大门上。有个家丁目不识丁,竟将“福”字头朝下贴上。恭亲王福晋十分气恼,欲鞭罚惩戒。可这大管家是个能言善辩之人,慌忙跪倒陈述:“奴常听人说,恭亲王寿高福大,如今大福真的到(倒)了。乃喜庆之兆。”恭亲王一听觉得合情合理,心想:“怪不得过往行人都说恭亲王福到(倒)了,吉语说千遍,金银增万贯。没学问的奴才,还真想不到有这种招式呢!”遂赏管家和家丁各五十两银子,可真是因祸得福。
2、定义工具类
“这两个工具类其实可以不专门写出来,随意一点啦~
”
①. 字体工具类
package com.mrxx.game;
import java.awt.*;
/*字体工具类*/
public class FontUtil {
public static void drawWord(Graphics g,String str,Color color,int size,int x,int y,String font){
g.setColor(color);
g.setFont(new Font(font,Font.BOLD,size));
g.drawString(str,x,y);
}
}
②. 图片工具类
package com.mrxx.game;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
/*图片工具类*/
public class ImgTool {
//提取图片工具1
public static BufferedImage getimg(String path){
BufferedImage img=null;
try {
img= ImageIO.read(new File(path));
} catch (IOException e) {
e.printStackTrace();
}
return img;
}
//工具2
public static Image getImage(String filename){
return Toolkit.getDefaultToolkit().getImage(filename);
}
}
##3、生成"福"主类
package com.mrxx.game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.util.Arrays;
import java.util.List;
/*主类*/
public class RandFu extends JFrame {
List<Color> colorList;
List<String> arrayList;
Integer index,fontRandom;
BufferedImage bg=null;
public RandFu(){
arrayList= Arrays.asList("楷体","宋体","华文琥珀","华文行楷","幼圆","华文新魏","华文彩云","隶书");
fontRandom=(int)((Math.random()*10)%8);
System.out.println("字体:"+arrayList.get(fontRandom));
bg=ImgTool.getimg("src/com/mrxx/img/bg.jpg");
//初始化
colorList=Arrays.asList(Color.gray,Color.black,Color.PINK, Color.orange,Color.RED);
index=(int) ((Math.random()*10)%5);
System.out.println("字体颜色"+index);
setSize(600,600);
setIconImage(ImgTool.getImage("src/com/mrxx/img/fu.png"));
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setBackground(Color.red);
//键盘监听
//设置面板键盘监听
this.addKeyListener(new KeyAdapter() {
//重写键盘监听方法
@Override
public void keyPressed(KeyEvent e) {
//判断是否是空格
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
reGame();
}
}
});
}
//重启
public void reGame(){
//关闭当前窗口
this.dispose();
//开启新窗口
String[] args={};
main(args);
}
@Override
public void paint(Graphics g){
//画背景
g.drawImage(bg,15,50,570,535,null);
FontUtil.drawWord(g,"福",colorList.get(index),250,163,400,arrayList.get(fontRandom));
//repaint();
}
public static void main(String[] args) {
RandFu randFu=new RandFu();
}
}
以上就是全部代码
4、运行测试
程序启动后空格键进行“福”字的随机生成,部分效果演示:
5、素材图片
以下两种图片一个是背景,一个是标题图片(不想动手的,可以直接下载我上传的资源(免费),有兴趣的可以参考我以前的文章把这个程序打包成exe的应用)使用方式空格键即可
“最后是证明图:(* ̄(oo) ̄)祝:大家都能顺利扫出敬业福~ 亲测+朋友测试结果:(基本万能福和敬业福都能扫出来)
”
6、程序源码下载
百度云链接:
https://pan.baidu.com/s/1pQ9wXHw335u7muBHHvYsWA
提取码: sf4q
3.Spring Boot官宣:正式弃用 Java 8,最低要求 Java 17!怎么办?
4.一款IDEA插件神器,帮你一键转换DTO、VO、BO、PO、DO,再见工具类!
5.SSH客户端神器MobaXterm,用起来超级爽!我抛弃Xshell,putty和CRT了
6.求求你以后别再写 main 方法测试了,太 Low了!这才是专业 Java 测试方法!
点个在看少个 bug