该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这个帖子是一年前发的,当时对Java也不是很懂,我看大家都对这个感兴趣,我把代码改了一下,发布出来,其实还有很多的地方还没有完善...,这个只能算一个Demo,有兴趣的可以参考和完善。

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.TextField;

import java.awt.event.TextEvent;

import java.awt.event.TextListener;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

public class Write {

// 打字文本

private String text;

// 打字文本显示框

private JLabel showText;

// 用户文本输入框

private TextField writer;

// 文本显示框字体

private Font showTextFont;

// 用户文本输入框字体

private Font writerFont;

public Write(String text) {

this.text = text;

init();

}

/**

* 设置文本显示框的字体

*

* @param font

* 字体

*/

public void setShowTextFont(Font font) {

showTextFont = font;

showText.setFont(font);

}

/**

* 设置用户文本输入框的字体

*

* @param font

* 字体

*/

public void setWriterFont(Font font) {

writerFont = font;

writer.setFont(font);

}

/**

* 设置文本显示框字体大小

* @param size 字体大小

*/

public void setShowTextFontSize(int size) {

showTextFont = new Font(showTextFont.getName(),

showTextFont.getStyle(), size);

showText.setFont(showTextFont);

}

/**

* 设置用户文本输入框字体大小

* @param size 字体大小

*/

public void setWriterFontSize(int size) {

writerFont = new Font(writerFont.getName(),

writerFont.getStyle(), size);

writer.setFont(writerFont);

}

/**

* 处理用户输入的文本

*

* @param str

* 用户输入的文本

*/

public void handleInputchange(String str) {

int n = str.length();

// 判断用户输入的长度

if (n > text.length()) {

n = text.length();

}

StringBuilder builder = new StringBuilder();

String w1 = "";

String r1 = "";

String s2 = "";

builder.append("");

for (int i = 0; i < n; i++) {

char c1 = text.charAt(i);

char c2 = str.charAt(i);

if (c1 == c2) {

builder.append(r1);

} else {

builder.append(w1);

}

builder.append(c1);

builder.append(s2);

}

builder.append(text.substring(n, text.length()));

builder.append("");

showText.setText(builder.toString());

}

/**

* 初始化界面

*/

private void init() {

final JFrame frame = new JFrame("练习打字");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel pa = new JPanel();

JPanel p1 = new JPanel();

JPanel p2 = new JPanel();

JPanel p3 = new JPanel();

frame.setContentPane(pa);

frame.setSize(600, 500);

frame.setLocation(350, 220);

// 初始化文本显示框和用户输入框

showText = new JLabel(text);

writer = new TextField(text.length() * 2);

setShowTextFont(new Font("宋体", Font.BOLD, 30));

setWriterFont(new Font("宋体", Font.BOLD, 30));

p2.add(showText);

p3.add(writer);

pa.setLayout(new GridLayout(3, 1));

pa.add(p1);

pa.add(p2);

pa.add(p3);

// 监听用户输入的变化

writer.addTextListener(new TextListener() {

@Override

public void textValueChanged(TextEvent e) {

TextField t = (TextField) e.getSource();

String str = t.getText();

handleInputchange(str);

}

});

frame.setVisible(true);

}

public static void main(String[] args) {

Write write = new Write("Java技术的强大生命力来自于它所蕴含的面向对象和设计模式思想。");

write.setShowTextFontSize(15);

write.setWriterFontSize(15);

}

}

java写游戏的聊天怎么写_怎么用JAVA编写一个打字游戏相关推荐

  1. 怎么用java实现打字功能_怎么用JAVA编写一个打字游戏

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这个帖子是一年前发的,当时对Java也不是很懂,我看大家都对这个感兴趣,我把代码改了一下,发布出来,其实还有很多的地方还没有完善...,这个只能算一个De ...

  2. 用python做五子棋游戏_用python来做一个五子棋游戏,源码分享~

    五子棋的规则大家肯定都了解,也是大家在百忙之中娱乐的一部分,也都在网上玩过五子棋的游戏,那么大家有没有想过自己编写一个五子棋游戏呢.很多人都感觉做"游戏"这个词汇听着就很难,不知道 ...

  3. 用C语言编写一个小游戏

    这是一个比较通用的方法来编写一个小游戏用 C 语言: 首先,确定游戏的目标和规则.这可能包括游戏的玩法.胜负条件.游戏元素和游戏流程等. 其次,确定游戏的用户界面.这可能包括游戏的菜单.按钮.文本框. ...

  4. 编写一个扫雷游戏,我们首先要清楚游戏规则

    编写一个扫雷游戏,我们首先要清楚游戏规则:         扫雷就是要把所有非地雷的格子揭开即胜利:踩到地雷格子就算失败.游戏主区域由很多个方格组成.使用鼠标左键随机点击一个方格,方格即被打开并显示出 ...

  5. C#编写一个扫雷游戏

    基础思路 像原版一样把扫雷分为三个难度:初级难度9*9,中级难度16*16,高级难度16*30 做一个游戏需要图片资源,去网上下载了关于 扫雷的有关文件,放在了项目中 扫雷的核心是用一个二维数组存储游 ...

  6. java聊天程序论文_【基于java的仿qq聊天程序的设计与实现论文最终版材料】

    基于java的仿qq聊天程序的设计与实现(论文)(最终版) <基于java的仿qq聊天程序的设计与实现(论文).doc>由会员分享,可免费在线阅读全文,更多与<基于java的仿qq聊 ...

  7. python编写一个弹球游戏_Python实战案例:用Python写一个弹球游戏,就是这么强

    我们前面讲了几篇关于类的知识点,为了让大家更好的掌握类的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python ...

  8. 黑白块游戏java代码_用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏,黑白反斗棋,我玩过了5*5和10*10的.是学习之后做的,不是自己原始开发的. import java.awt.Color; import java.awt.FlowLayo ...

  9. java与数据类型相关的十个关键字_乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符...

    大家好,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对代码进行合理注释 ...

最新文章

  1. sum_series() 求一列数的指定个数的数和(5个数字的和)
  2. 专用ADC与群集软件之比较
  3. mysql数据库的备份与还原
  4. 计算机无法显示移动硬盘,移动硬盘在我的电脑中不显示了 怎么处理?
  5. pagerank算法实现matlab,Matlab 入门及PageRank算法求解.ppt
  6. Qt Creator使用材质和明暗器Using Materials and Shaders
  7. [pytorch、学习] - 4.6 GPU计算
  8. catia v5法矢数据软件_catia介绍
  9. 解决使用百度UEditor编辑器后移动端图片被拉伸问题
  10. python2.7开发环境搭建_windows python2.7 django 开发环境搭建
  11. tshark解析本地pcap数据包提取五元组{src_ip,src_port,proto,dst_ip,dst_port}与时间戳,包长
  12. Python多态原理与示例演示
  13. mybatis批量更新 mysql 报错,Mybatis批量更新报错问题
  14. 计算机语言--python
  15. linux网络 (二):无线网络操作
  16. LBS (基于位置服务)-- Location Based Service
  17. 使用GRUB2制作U盘PE启动盘
  18. oracle xdb xquery,XML DB与XDB是同一个东西吗?
  19. Solr搜索引擎原理
  20. 内存稳定性测试软件(MemTest)

热门文章

  1. keyshot怎么批量渲染_提高Keyshot逼真渲染的小技巧
  2. snagit屏幕截图转pdf
  3. 奇异值分解 SVD 的数学解释
  4. 前端的单页面模式和多页面模式
  5. Django 缓存6.2
  6. 计算机应用专业能评自动化工程师吗,报考自动化控制工程师中级职称需要哪些条件?...
  7. TypeError: ord() expected string of length 1, but int found
  8. Android 自定义ProgressBar 实现进度圆环
  9. ERROR: Failed to resolve: com.android.databinding:library:3.4.2
  10. Android 10 新增的功能