利用Java编写一个出敬业福的小程序

网友投稿 311 2022-09-01


利用Java编写一个出敬业福的小程序

目录1、前言2、定义工具类3、生成"福"主类4、运行测试5、素材图片

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 colorList;

List 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[] akbvIfSBIJbrgs) {

RandFu randFu=new RandFu();

}

}

以上就是全部代码

4、运行测试

程序启动后空格键进行“福”字的随机生成,部分效果演示:

5、素材图片

以下两种图片一个是背景,一个是标题图片(不想动手的,可以直接下载我上传的资源(免费),有兴趣的可以参考我以前的文章把这个程序打包成exe的应用)使用方式空格键即可


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一、Python、Pycharm的介绍与安装。(python和pycharm安装教程)
下一篇:二、变量、整数、字符串、列表、字典、集合。
相关文章

 发表评论

暂时没有评论,来抢沙发吧~