【写福字】

转载:https://mp.weixin.qq.com/s/Sk6MaMNpesXn1R_8OOBBOg

写福字

素材

在这里插入图片描述

在这里插入图片描述

代码

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);
    }
}
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);
    }
}

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/main/java/com/yonghui/data/test/zz/bg.jpg");
        //初始化
        colorList = Arrays.asList(Color.YELLOW, Color.ORANGE, Color.black, Color.PINK, Color.RED, Color.black);
        index = (int) ((Math.random() * 10) % 5);
        System.out.println("字体颜色" + index);
        setSize(600, 600);
        setIconImage(ImgTool.getImage("src/main/java/com/yonghui/data/test/zz/fu.jpg"));
        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();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值