利用Java编写一个出敬业福的小程序
1、前言
“福”的由来: 姜太公封一大批神仙时,却把自己的妻子叶氏封为穷神,还告诉她说:“有福的地方,你不能去。”从此,家家过年贴福字,就是告诉穷神,我这里是有福的地方,你千万不能进来。福字,就是摆脱穷困、追求幸福的象征。
福字之所以倒贴,传说起于清代恭亲王府。那年春节前夕,大管家按例写了几个斗大的“福”字,叫人贴于王府的大门上。有个家丁目不识丁,竟将“福”字头朝下贴上。恭亲王福晋十分气恼,欲鞭罚惩戒。可这大管家是个能言善辩之人,慌忙跪倒陈述:“奴常听人说,恭亲王寿高福大,如今大福真的到(倒)了。乃喜庆之兆。”恭亲王一听觉得合情合理,心想:“怪不得过往行人都说恭亲王福到(倒)了,吉语说千遍,金银增万贯。没学问的奴才,还真想不到有这种招式呢!”遂赏管家和家丁各五十两银子,可真是因祸得福。
新年将至,又开始扫福活动,每年的敬业福成了大家难过的坎,于是编写一款福字生成器,提高大家扫福的效率与扫到敬业福的概率,小编已经扫出,废话不多说,直接上代码(都在用Python写好玩的,我就用Java写点好玩的)
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的应用)使用方式空格键即可
到此这篇关于利用Java编写一个出敬业福的小程序的文章就介绍到这了,更多相关Java内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java Swing SpringLayout弹性布局的实现代码
这篇文章主要介绍了Java Swing SpringLayout弹性布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12解决RestTemplate 请求url中包含百分号 会被转义成25的问题
这篇文章主要介绍了解决RestTemplate 请求url中包含百分号 会被转义成25的问题,具有很好的参考价值,希望对大家有所帮助。2021-10-10解决mybatis一对多查询resultMap只返回了一条记录问题
小编接到领导一个任务需求,需要用到使用resultMap相关知识,在这小编记录下这个问题的解决方法,对mybatis一对多查询resultMap项目知识感兴趣的朋友一起看看吧2021-11-11详解如何让Spring MVC显示自定义的404 Not Found页面
这篇文章主要介绍了详解如何让Spring MVC显示自定义的404 Not Found页面,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-10-10
最新评论