900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java写游戏的聊天怎么写_怎么用JAVA编写一个打字游戏

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

时间:2024-06-30 20:49:46

相关推荐

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

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

这个帖子是一年前发的,当时对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);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。