java简单实现一个小型的打字测试软件
2014-11-14 20:44
239 查看
这次的实验室要做一个用java实现一个打字测试软件,由于java还没有熟练,大多数监听的话只用到了actionlistener控件,而没有用到keylistener来实现对键盘的监听,所以一开始没什么头绪,后来翻了翻网上关于keylistener的实现和用法,于是恍然大悟,很快的实现了这个小小的应用。算是一次比较印象深刻的经历吧,写和调试足足用了三个多小时,累的我不行不行的了。
附上代码:
附上代码:
package test12; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class typeWriting extends JFrame implements ActionListener,KeyListener{ JPanel p1=new JPanel(); JPanel p2=new JPanel(new FlowLayout()); JPanel p3=new JPanel(); JTextArea textField1=new JTextArea(4,2); JTextArea textField2=new JTextArea(); float right=0; JLabel showmessageJLabel=new JLabel("当前正确率:100%"); JLabel l1=new JLabel(); JLabel l2=new JLabel("难度:"); JTextField l3=new JTextField(5); Font font=new Font("楷体", 1, 48); Font font1=new Font("黑体",0,14); JButton b1=new JButton(); JButton b2=new JButton(); int count=0; int i=0,len1=0; double r=0; char []y; public typeWriting () { super("打字练习软件"); setSize(500,400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); l1.setFont(font); l1.setText("打字练习软件");; p1.setLayout(new GridLayout(3,1)); textField1.setEditable(false); textField2.addKeyListener(this); textField1.setFont(font1); textField2.setFont(font1); textField1.setLineWrap(true); textField2.setLineWrap(true); textField1.setWrapStyleWord(true); textField2.setWrapStyleWord(true); p1.add(textField1); p1.add(showmessageJLabel); p1.add(textField2); b1=new JButton("开始"); b2=new JButton("退出"); p2.add(b1); p2.add(b2); p2.add(l2); p2.add(l3); p3.add(l1); add(p1,BorderLayout.CENTER); add(p3,BorderLayout.NORTH); add(p2,BorderLayout.SOUTH); b1.addActionListener(this); b2.addActionListener(this); JOptionPane.showMessageDialog(null, "请选择要练习的内容:1.初级 2.中级 3.困难"); this.setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==b1){ int key=0; key=Integer.valueOf(l3.getText()); switch (key) { case 1: textField1.setText("abcdefghijklmnopqrstuvwxyz"); break; case 2: textField1.setText("My father was a self-taught mandolin player. " + "He was one of the best string instrument players in our town. " + "He could not read music, but if he heard a tune a few times, " + "he could play it. " + "When he was younger, he was a member of a small country music b"); break; case 3: textField1.setText("sdfmawieofnosandvoinqewoifnvoqwneiqwenfqnwefoinqwoien"); break; default: break; } len1=textField1.getText().length(); } if(e.getSource()==b2) { System.exit(0); } } public static void main(String [] argsS) { typeWriting t1=new typeWriting(); } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub if((int)e.getKeyChar()>31&&(int)e.getKeyChar()<127) { if(i>=textField1.getText().length()) { JOptionPane.showMessageDialog(null, "超出个数"); } double c=0; if(e.getKeyChar()==textField1.getText().charAt(i)) { r++;i++; } else { i++; } double f=i; c=(r/f)*100; showmessageJLabel.setText("当前正确率:"+c+"%"); } } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } }
相关文章推荐
- Cage 是一个 Java 实现的验证码图片生成库,快速、小型和简单。
- 一个简单的用JAVA实现的屏幕抓图(源代码)
- 一个简单的Echo Server的Java实现(增强版)
- 一个用Java实现的简单的最大堆
- JAVA SPRING MVC 实现一个简单的页面显示功能
- 一个简单词法分析器的实现代码(java实现)
- 一个简单的冒泡排序和快速排序算法java实现
- 利用java实现一个简单的远程监控程序
- JAVA进阶:一个简单Thread缓冲池的实现
- 超简单实现一个只接收数字的类[JAVA]
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- 一个简单的用JAVA实现的屏幕抓图(源代码)
- Java进阶:一个简单Thread缓冲池的实现
- 用RMI实现一个简单的实时聊天系统(java语言)
- 一个java实现的简单日历,采用左树右列表的方式实现,具有参考意义
- 用java实现一个简单的序列化的例子
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- Java实现一个简单的定时器
- 一个简单词法分析器的实现代码(java实现)
- 一个简单的线程池实现(java版)