这个比较简单,没啥东西,就是每列开始行的选择,有点绕弯,我就注释下GraphicsPanel吧,主要的绘制工作都在这个类里面
创新互联专注于临沭网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供临沭营销型网站建设,临沭网站制作、临沭网页设计、临沭网站官网定制、小程序制作服务,打造临沭网络公司原创品牌,更为您提供临沭网站排名全网营销落地服务。
private class GraphicsPanel extends JPanel {
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d. setFont (getFont (). deriveFont (Font. BOLD));
g2d. setColor(Color. BLACK);
g2d. fillRect (0, 0, screenSize. width, screenSize. height); // 设置背景色为黑色
int currentColumn = 0;
for (int x = 0; x screenSize.width; x += gap) {
int endPos = posArr[currentColumn]; //获得开始行位置
g2d. setColor(Color. GREEN);
g2d.drawString(String.valueOf(getChr()), x, endPos * gap); //画出随机开始行的字符
int cg = 0; //初始黑色
for (int j = endPos -16; j endPos; j++) { //随机行逐列向上16行,为循环开始行
cg += 15; //渐变色15递增,255为green
if (cg 255) {
cg = 255;
}
g2d.setColor(new Color(0, cg, 0));
g2d.drawString(String.valueOf(getChr()), x, j * gap); //画出随机行后的15行字符,颜色从黑色渐变成绿色,逐行增加
}
posArr[currentColumn] += random.nextInt(5); //下落距离最快为4
if (posArr[currentColumn] * gap getHeight()) { //如果行数位置大于屏幕高度,从新获取合适的行
posArr[currentColumn] = random.nextInt(lines);
}
currentColumn++; //下一列获取随机行
}
cmd代码数字雨需要建一个文件,在文件内写入相应的代码,保存后,点击运行就可以在电脑屏幕上出现代码雨,具体方法如下:
1、电脑用户在自己的电脑桌面上创建一个文本文件。创建以后打开。
2、打开以后,在文件中输入代码。代码如下图所示。
3、完成代码雨的代码编写以后,点击工具栏中的文件。然后在点击另存为,将下方的文件名的后缀改为“.bat”。文件名用户随意定义。修改好以后点击“保存”。
4、完成文件的编写和保存以后,右击文件点击以管理员身份运行。
5、运行效果如下。
注意事项:
1、代码不要写错,写错不能运行。
2、在另存的时候,如果不显示后缀,将保存文件选成“所有文件”,在文件名称后面直接打.bat即可。
3、双击也可以运行。
1.右键点击电脑桌面,创建一个记事本。2.创建以后在文件中输入代码。3.完成代码雨的代码编写以后,点击工具栏中的文件。然后再点击另存为。4.点击另存为以后,将下方的文件名的后缀改为“.bat”。文件名用户随意定义。修改好以后点击“保存”。5.完成文件的编写和保存以后,右击文件点击以管理员身份运行。这样就可以看到一个炫酷的代码雨界面了。
说白了一个代码点就是一个Unicode字符。代码单元就是代码点的集合。
字符视图
要了解字符集标准,您必须能区分三种不同的字符视图:
字符集(字符的抽象列表)。
作为带标量值的“代码点”的字符。
作为编码数据的字符。
字符集(字符的抽象列表)
嗯!我也是这么样认为的!
字符集是各种文字(包括拉丁文、西里尔文、中文、朝鲜语、日语、希伯来语和阿拉伯语)中所包含的字符的一个抽象列表,由一百多万个字符组成。字符集还包括其他符号,例如音符。
Unicode 和 GB18030 标准都具有字符集。当某个标准添加了新字符时,为了保持对等,另一个标准也将添加这些字符。
作为带标量值的“代码点”的字符
注意 这第二个字符视图只适用于 Unicode,而不适用于 GB18030。
字符集中的每个字符都被分配到一个“代码点”。每个代码点都有一个特定的数值,称为标量值。该标量值通常用十六进制表示。
代码点存在于“代码空间”中。代码空间由许多标量值组成,这些值被划分在两个平面中:
基本多语种平面(64k 大小)。
在 Unicode 中,此下平面中的值的十六进制表示位于 U+0000 到 U+FFFF 的范围中。
辅助多语种平面(16 个 64k 大小的附加节)。
在 Unicode 中,此上平面中的值的十六进制表示位于 U+10000 到 U+10FFFF 的范围中。
所有可能的标量值的完整代码空间的大小为 17 * 64k(1,088,000 个可能值)。
作为编码数据的字符
每个编码形式将字符从字符集转换为编码数据。
在 GB18030 中,编码数据直接从字符集派生:标量值(作为字符集和编码数据之间的媒介)的概念只适用于 Unicode。
在 Unicode 中,通过向标量值应用某个算法来派生编码数据。
Unicode 定义了三种字符编码形式:
UTF-8
UTF-16
UTF-32
代码点和代码单元
在每种编码形式中,代码点被映射到一个或多个代码单元。
注意 有关代码点的概述,请参见上一节字符视图。
“代码单元”是各个编码形式中的单个单元。代码单元的大小等效于特定编码的位数测量单位:
UTF-8 中的代码单元由 8 位组成。
UTF-16 中的代码单元由 16 位组成。
UTF-32 中的代码单元由 32 位组成。
GB18030 中的代码单元由 8 位组成。
每个代码点中的代码单元数
映射到代码点所需的代码单元数根据编码形式而有所不同:
UTF-8
在 UTF-8 中,因为代码单元较小的缘故,每个代码点常常被映射到多个代码单元。代码点将被映射到一个、两个、三个或四个代码单元。
UTF-16
UTF-16 的代码单元大小是 8 位代码单元的两倍。所以,标量值小于 U+10000 的代码点被编码到单个代码单元中。
对于标量值大于或等于 U+10000 的代码点,每个代码点需要两个代码单元。在 UTF-16 中,这些代码单元对有一个独特的术语:“Unicode 代理对”。
注意 下面对 Unicode 代理对的支持进行了讨论。
UTF-32
UTF-32 中使用的 32 位代码单元足够大,每个代码点都可编码为单个代码单元。
GB18030
在 GB18030 中,因为代码单元较小的缘故,每个代码点常常被映射到多个代码单元。代码点将被映射到一个、两个或四个代码单元。
对 Unicode 代理对的支持
某些受 Unicode 支持的文字包含代码点的标量值大于或等于 U+10000 的字符。在 UTF-16 中,通过使用代理对来对这些代码点进行编码。
正确处理 Unicode 代理对非常重要。例如,当您在使用 UTF-16 编码的应用程序中处理文本时,如果要添加、删除或选择字符以进行剪切、复制或粘贴操作,文本光标必须将每个代码点作为单个文本字符导航。