java打字_怎么用JAVA编写一个打字游戏

本文分享了一个简单的Java打字游戏代码,虽然是初步的Demo,但可以作为学习和改进的基础。代码中包括了文本显示、用户输入处理以及界面初始化等功能,适合对Java编程感兴趣的读者参考。
摘要由CSDN通过智能技术生成

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

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

4b0093dbb8a1d0d81ffb0f8bac1b409a.png

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

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值