首先保存你的Github初始头像。仔细观察这张图片,发现:
1.这是一张420 420像素的图片。
2.主要部分为随机生成的5*5像素图形,颜色随机,并且左右对称。
3.四周有等宽的边框,并且,经测量,边框(背景)颜色为(240,240,240,255);边框的宽度为34像素。

以下为主类:

package p;
import java.awt.Color;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.JFrame;
public class AvaterGenerator {public static final int L=420,F=34; //L为图像边长,F为边框长度public static void main(String[] args){DrawAvater da = new DrawAvater();JFrame f=new JFrame("Profile");f.setSize(L+22,L+56);    //JFrame的标题栏也会占像素,因此增加一个常数校正Color c = new Color(240,240,240);   //背景色f.setBackground(c);f.setLocation(200,200);f.setVisible(true); f.add(da);//键盘监听,按空格调用repaint函数,生成一个新头像f.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){if(e.getKeyCode()==KeyEvent.VK_SPACE) da.repaint();}});}
}

以下为画板类:

package p;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
public class DrawAvater extends JPanel {boolean fillin[][];protected void paintComponent ( Graphics g ) {super.paintComponent(g);//随机生成图形矩阵:Random r = new Random();boolean[][] fillin= new boolean[5][5];//随机生成左半部分:for(int j=0;j<2;j++){for(int i=0;i<5;i++){fillin[i][j]=r.nextBoolean();}}//随机生成中间一列:for(int j=2,i=0;i<5;i++){fillin[i][j]=r.nextBoolean();}//镜像生成右半部分:for(int j=3;j<5;j++){for(int i=0;i<5;i++){fillin[i][j]=fillin[i][4-j];}}int p=(AvaterGenerator.L-2*AvaterGenerator.F)/5;            //p为每个着色像素块的边长Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),50+r.nextInt(205));//随机生成颜色。4个随机生成的参数为:RGB和透明度,透明度不宜太低for(int i=0;i<5;i++){for(int j=0;j<5;j++){g.setColor(c); if(fillin[i][j]){g.fillRect(j*p+AvaterGenerator.F, i*p+AvaterGenerator.F, p, p);}}}}
}

运行程序,单击空格,你可以得到许许多多可爱的头像。

如何用java实现一个可爱的Github初始头像生成器相关推荐

  1. 如何用java开发一个网站?

    问题:如何用java开发一个网站? 下载了最新的JDK软件.最新的Eclipse.数据库mysql以及tomcat.struts但是不知道怎么连接起来,在数据库连接的时候mysql-connector ...

  2. 如何用Java写一个斗地主(一)

    如何用Java写一个斗地主(一) 序言 正文 创建卡牌 打乱牌序 发牌 课后吐槽 序言 作为一名大三的普普通通大学生,被实习老师(?)强迫下,第一次开始写CSDN的博客,如果写的不好,请多多包涵咯. ...

  3. 如何用java写一个年日历

    如何用java写一个年日历 没啥难的,话不多说上代码

  4. 面试题之如何用Java设计一个自动售货机

    如何用Java设计一个自动售货机程序是一个非常好的Java面试题.大多数情况会在面试比较senior的Java开发者的时候出现.在一个典型的代码面试中,你需要在一定的时间内根据对应的条件完成相关的代码 ...

  5. 如何用JAVA制作一个漂亮的表格

    如何用JAVA制作一个漂亮的表格 表格图片: 选中一行时高亮显示,且字体变为红色: 在表格中添加数据: 代码如下: import java.awt.BorderLayout; import java. ...

  6. 如何用UE5渲染一个可爱的茶壶屋?

    Hello,今天给大家带来如何用UE5渲染一个可爱的茶壶屋? 1.介绍 今天分享一个可爱风茶壶屋制作思路.之所以选择在UE5中进行渲染,是因为他的渲染方便,后处理也可以提高初学者的使用效率. 2.参考 ...

  7. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

  8. 如何用Java设计一个简单的窗口界面(学习中.1)

    如何用Java设计一个简单的窗口界面 一.前言 二.简单了解 1.Swing简介 2.框架(frame) 3.层次 三.步骤 1.打开eclipse,依次创建项目,包,类. 2.代码 2.1最简单的可 ...

  9. Github风格头像生成器

    项目介绍 随机生成Github风格头像,可自定义颜色.大小.透明性等. 成果展示 项目地址 github-avatar-generator

最新文章

  1. 如何摆脱穷打工的命?
  2. 搜索Maven的仓库
  3. NTU 课程笔记 CV6422 Statistical Methods Applications (1) 基本统计知识
  4. Frog Traveler 最短路,bfs剪枝,打印路径
  5. pycharm中的console退出问题以及console和pycharm各自运行结果不一样的问题
  6. LeetBook《程序员的算法趣题》Q18---水果酥饼日
  7. mysql主从北_mysql主从复制(超简单)
  8. nodeJS之二进制buffer对象
  9. 值得推荐的C/C++框架和库(转)
  10. 数学分析典型方法pdf下载_硬质合金刀具常识及使用方法 pdf下载 0700
  11. jQuery MiniUI, 企业级Web开发
  12. secureCRT显示中文
  13. [转][darkbaby]任天堂传——失落的泰坦王朝(中)
  14. 不仅仅是土豆_设计成功不仅仅需要设计技能
  15. qml中Popup元素的 aboutToShow和 opened()的区别
  16. dcloud wap2app上架应用宝过审方法
  17. 安装mysql数据库和mysql客户端
  18. 数据分析师—Excel函数篇
  19. 论文笔记 | Conducting research in marketing with quasi-experiments
  20. PDF压缩的使用工具有哪些

热门文章

  1. 【TWVRP】模拟退火算法求解带时间窗的多车型路径规划问题【含Matlab源码 913期】
  2. MAC下有道词典命令行查询工具安装
  3. 顺序表之两个有序顺序表合并
  4. 【搜索】C042_openj_哆啦A梦的时光机(暴力 / 记忆化)
  5. 打印机打印时长边翻转和短边翻转有什么区别?
  6. short、int、long、long long
  7. 手把手教你自己写一个Python模块,并将其发布并安装到自己的Python环境中去
  8. 计算机算法专业有哪些,计算机专业的研究生研究方向有哪些
  9. 第4章 介绍Python对象类型
  10. C语言例程:投资问题 单利和复利