前幾天才給別人做了..妳看下吧...聲音文件要的話在問我..?
/282919088/blog/item/953f5116836a544321a4e972.html
//改好妳的要求了
import?java.applet.Applet;
import?java.applet.AudioClip;
import?java.awt.Dimension;
import?java.awt.Font;
import?java.awt.Toolkit;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
import?java.awt.Rectangle;
import?javax.swing.BorderFactory;
import?javax.swing.JButton;
import?javax.swing.JOptionPane;
import?javax.swing.JSlider;
import?javax.swing.JLabel;
import?javax.swing.UIManager;
import?javax.swing.event.ChangeEvent;
import?javax.swing.event.ChangeListener;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.KeyAdapter;
import?java.awt.event.KeyEvent;
import?java.io.File;
import?java.util.Vector;
public?class?打字練習?extends?JFrame?implements?Runnable?{
JPanel?contentPane; JPanel?jPanel1?=?new?JPanel(); JButton?jButton1?=?new?JButton(); JButton?jButton2?=?new?JButton(); int?count?=?1,?rapidity?=?80;?//?count?當前進行的個數,?rapidity?遊標的位置 int?rush?=?10;?//?遊戲每關的個數?可以自由添加.列?{?10?,20?,30?,40,50} int?rush_count?=?0;?//?記錄關數 char?list[]?=?{?'A',?'B',?'C',?'D',?'E',?'F',?'G',?'H',?'I',?'J',?'K',?'L','M',?'N',?'O',?'P',?'Q',?'R',?'S',?'T',?'U',?'V',?'W',?'X',?'Y',
'Z',?'1',?'2',?'3',?'4',?'5',?'6',?'7',?'8',?'9'?};?//?隨機出現的數字
//?可以自由添加
String?paiduan?=?"true"; Vector?number?=?new?Vector(); boolean?foo=true; public?打字練習()?{ try?{setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}?catch?(Exception?exception)?{exception.printStackTrace();
} }? private?void?jbInit()?throws?Exception?{ contentPane?=?(JPanel)?getContentPane(); contentPane.setLayout(null); setSize(new?Dimension(588,?530)); setTitle("Frame?Title"); jPanel1.setBorder(BorderFactory.createEtchedBorder()); jPanel1.setBounds(new?Rectangle(4,?4,?573,?419)); jPanel1.setLayout(null); jButton1.setBounds(new?Rectangle(277,?442,?89,?31)); jButton1.setText("開始"); jButton1.addActionListener(new?Frame1_jButton1_actionAdapter(this)); jButton2.setBounds(new?Rectangle(408,?442,?89,?31)); jButton2.setText("結束"); jButton2.addActionListener(new?Frame1_jButton2_actionAdapter(this)); contentPane.add(jPanel1); contentPane.add(jButton2); contentPane.add(jButton1); this.addKeyListener(new?MyListener()); jButton1.addKeyListener(new?MyListener()); } public?void?run()?{? while(foo){try?{
Thread?t?=?new?Thread(new?Tthread());
t.start();
count?+=?1;
Thread.sleep(1000?+?(int)?(Math.random()?*?2000));?//?生產下組停頓時間
//?最快1快.最慢2秒
}?catch?(InterruptedException?e)?{
e.printStackTrace();
}?
}? } public?void?jButton1_actionPerformed(ActionEvent?e)?{ foo=true; Thread?t?=?new?Thread(this); t.start(); } public?void?jButton2_actionPerformed(ActionEvent?e)?{? paiduan?=?"flase"; foo=false; } class?Tthread?implements?Runnable?{ public?void?run()?{boolean?fo?=?true;
int?Y?=?0,?X?=?0;
JLabel?show?=?new?JLabel();
show.setFont(new?java.awt.Font("宋體",?Font.PLAIN,?33));
jPanel1.add(show);
X?=?10?+?(int)?(Math.random()?*?400);
String?parameter?=?list[(int)?(Math.random()?*?list.length)]?+?"";
Bean?bean?=?new?Bean();
bean.setParameter(parameter);
bean.setShow(show);
number.add(bean);
show.setText(parameter);
while?(fo)?{
//?---------------------數字下移--------------------
show.setBounds(new?Rectangle(X,?Y?+=?2,?33,?33));
try?{
Thread.sleep(rapidity);}?catch?(InterruptedException?e)?{
e.printStackTrace();}
if?(Y?>=?419)?{
fo?=?false; for?(int?i?=?number.size()?-?1;?i?>=?0;?i--)?{ Bean?bn?=?((Bean)?number.get(i)); if?(parameter.equalsIgnoreCase(bn.getParameter()))?{?number.removeElementAt(i);
break;
} }}
}
} } class?MyListener?extends?KeyAdapter?{ public?void?keyPressed(KeyEvent?e)?{String?uu?=?e.getKeyChar()?+?"";
for?(int?i?=?0;?i?<?number.size();?i++)?{
Bean?bean?=?((Bean)?number.get(i));
if?(uu.equalsIgnoreCase(bean.getParameter()))?{?
number.removeElementAt(i); bean.getShow().setVisible(false); break;}
}
} } public?static?void?main(String[]?args)?{ try?{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}?catch?(Exception?exception)?{exception.printStackTrace();
} 打字練習?frame?=?new?打字練習(); Dimension?screenSize?=?Toolkit.getDefaultToolkit().getScreenSize(); Dimension?frameSize?=?frame.getSize(); if?(frameSize.height?>?screenSize.height)?{frameSize.height?=?screenSize.height;
} if?(frameSize.width?>?screenSize.width)?{frameSize.width?=?screenSize.width;
} frame.setLocation((screenSize.width?-?frameSize.width)?/?2,(screenSize.height?-?frameSize.height)?/?2);
frame.setVisible(true); }}
class?Frame1_jButton2_actionAdapter?implements?ActionListener?{
private?打字練習?adaptee; Frame1_jButton2_actionAdapter(打字練習?adaptee)?{ this.adaptee?=?adaptee; } public?void?actionPerformed(ActionEvent?e)?{ adaptee.jButton2_actionPerformed(e); }}
class?Frame1_jButton1_actionAdapter?implements?ActionListener?{
private?打字練習?adaptee; Frame1_jButton1_actionAdapter(打字練習?adaptee)?{ this.adaptee?=?adaptee; } public?void?actionPerformed(ActionEvent?e)?{ adaptee.jButton1_actionPerformed(e); }}
class?Bean?{
String?parameter?=?null; JLabel?show?=?null; public?JLabel?getShow()?{ return?show; } public?void?setShow(JLabel?show)?{ this.show?=?show; } public?String?getParameter()?{ return?parameter; } public?void?setParameter(String?parameter)?{ this.parameter?=?parameter; }}