怎么用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);
}
}
總結
以上是生活随笔為你收集整理的怎么用java实现打字功能_怎么用JAVA编写一个打字游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构之优先队列:最小索引优先队列,P
- 下一篇: 智慧交通day04-特定目标车辆追踪03