利用Java編寫一個出敬業(yè)福的小程序
1、前言
“福”的由來: 姜太公封一大批神仙時,卻把自己的妻子葉氏封為窮神,還告訴她說:“有福的地方,你不能去。”從此,家家過年貼福字,就是告訴窮神,我這里是有福的地方,你千萬不能進(jìn)來。福字,就是擺脫窮困、追求幸福的象征。
福字之所以倒貼,傳說起于清代恭親王府。那年春節(jié)前夕,大管家按例寫了幾個斗大的“福”字,叫人貼于王府的大門上。有個家丁目不識丁,竟將“福”字頭朝下貼上。恭親王福晉十分氣惱,欲鞭罰懲戒??蛇@大管家是個能言善辯之人,慌忙跪倒陳述:“奴常聽人說,恭親王壽高福大,如今大福真的到(倒)了。乃喜慶之兆。”恭親王一聽覺得合情合理,心想:“怪不得過往行人都說恭親王福到(倒)了,吉語說千遍,金銀增萬貫。沒學(xué)問的奴才,還真想不到有這種招式呢!”遂賞管家和家丁各五十兩銀子,可真是因禍得福。
新年將至,又開始掃福活動,每年的敬業(yè)福成了大家難過的坎,于是編寫一款福字生成器,提高大家掃福的效率與掃到敬業(yè)福的概率,小編已經(jīng)掃出,廢話不多說,直接上代碼(都在用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); ? ? ? ? //鍵盤監(jiān)聽 ? ? ? ? //設(shè)置面板鍵盤監(jiān)聽 ? ? ? ? this.addKeyListener(new KeyAdapter() { ? ? ? ? ? ? //重寫鍵盤監(jiān)聽方法 ? ? ? ? ? ? @Override ? ? ? ? ? ? public void keyPressed(KeyEvent e) { ? ? ? ? ? ? ? ? //判斷是否是空格 ? ? ? ? ? ? ? ? if (e.getKeyCode() == KeyEvent.VK_SPACE) { ? ? ? ? ? ? ? ? ? ? reGame(); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? }); ? ? } ? ? //重啟 ? ? public void reGame(){ ? ? ? ? //關(guān)閉當(dāng)前窗口 ? ? ? ? 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、運行測試
程序啟動后空格鍵進(jìn)行“福”字的隨機生成,部分效果演示:
5、素材圖片
以下兩種圖片一個是背景,一個是標(biāo)題圖片(不想動手的,可以直接下載我上傳的資源(免費),有興趣的可以參考我以前的文章把這個程序打包成exe的應(yīng)用)使用方式空格鍵即可
到此這篇關(guān)于利用Java編寫一個出敬業(yè)福的小程序的文章就介紹到這了,更多相關(guān)Java內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
學(xué)習(xí)Java之自定義異常與NullPointerException的處理
有時候Java自身提供的異常類并不能很好地表達(dá)我們的需求,所以這時候我們就可以自定義異常,也就是說,我們可以制造出一個自己的異常類,這樣就可以拋出或捕獲自己的異常了,本文就給大家詳細(xì)講講Java自定義異常與NullPointerException的處理2023-08-08IDEA中Maven報錯Cannot resolve xxx的解決方法匯總(親測有效)
在IDEA中的pom文件中添加了依賴,并且正確加載了相應(yīng)依賴,pom文件沒有報紅,看起來像是把所有依賴庫全部加載進(jìn)來了,但是代碼中使用依賴的類庫使報紅,本文給大家介紹了IDEA中Maven報錯Cannot resolve xxx的解決方法匯總,需要的朋友可以參考下2024-06-06SpringBoot+Mybatis使用Enum枚舉類型總是報錯No enum constant&n
這篇文章主要介紹了SpringBoot+Mybatis使用Enum枚舉類型總是報錯No enum constant XX問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12IDEA創(chuàng)建Maven工程Servlet的詳細(xì)教程
這篇文章主要介紹了IDEA創(chuàng)建Maven工程Servlet的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10java中List對象列表實現(xiàn)去重或取出及排序的方法
這篇文章主要介紹了關(guān)于java中List對象列表實現(xiàn)去重或取出以及排序的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08