導入Java . applet . audio clip;
導入Java . awt . dimension;
導入Java . awt . font;
導入Java . awt . toolkit;
導入javax . sound . sampled . audio file format;
導入javax . sound . sampled . audio system;
導入javax . swing . jframe;
導入javax . swing . jpanel;
導入Java . awt . rectangle;
導入javax . swing . border factory;
導入javax . swing . jbutton;
導入javax . swing . joptionpane;
導入javax . swing . js lider;
導入javax . swing . jlabel;
導入javax . swing . swing utilities;
導入javax . swing . ui manager;
導入javax . swing . event . change event;
導入javax . swing . event . change listener;
導入Java . awt . event . action event;
導入Java . awt . event . action listener;
導入Java . awt . event . key adapter;
導入Java . awt . event . key event;
導入Java . io . file;
導入Java . util . vector;
公共類Frame擴展JFrame實現Runnable {
JPanel contentPane
JPanel JPanel 1 = new JPanel();
JButton JButton 1 = new JButton();
JSlider JSlider 1 = new JSlider();
JLabel JLabel 1 = new JLabel();
JButton JButton 2 = new JButton();
JLabel JLabel 2 = new JLabel();
int計數= 1,快度= 80;//計算當前數字,以及快速光標的位置。
int zhengque = 0,CuO Wu = 0;
int rush[] = { 10,20,30 };//遊戲中的關卡數量可以自由添加。列{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 ' };//隨機數可以自由添加。
向量號= new Vector();
String paiduan = " true
AudioClip Musci _安建,音樂_白石,音樂_呈貢;
公共框架(){
嘗試{
setDefaultCloseOperation(EXIT _ ON _ CLOSE);
// -聲音文件。
Musci _安建= Applet.newAudioClip(新文件(" sounds//anjian.wav ")
。toURL());
Music _白石= Applet.newAudioClip(新文件(" sounds//shibai.wav ")
。toURL());
music _ cheng gong = applet . newaudioclip(新文件(
“聲音//chenggong.wav”)。toURL());
// -
JB init();
} catch(異常異常){
exception . printstacktrace();
}
}
/**
*組件初始化。
*
* @throws java.lang.Exception
*/
私有void jbInit()拋出異常{
content pane =(JPanel)get content pane();
content pane . set layout(null);
setSize(新維度(588,530));
setTitle(“幀標題”);
jpanel 1 . set border(border factory . createetchedborder());
jPanel1.setBounds(新矩形(4,4,573,419));
jpanel 1 . set layout(null);
jButton1.setBounds(新矩形(277,442,89,31));
jbutton 1 . settext(" Start ");
jbutton 1 . addactionlistener(new frame 1 _ jbutton 1 _ actionAdapter(this));
jSlider1.setBounds(新矩形(83,448,164,21));
jslider 1 . setmaximum(100);
jslider 1 . set minimum(1);
js lider 1 . setvalue(50);
jlabel 1 . settext(" speed ");
jLabel1.setBounds(新矩形(35,451,39,18));
jButton2.setBounds(新矩形(408,442,89,31));
jbutton 2 . settext(" end ");
jbutton 2 . addactionlistener(new frame 1 _ jbutton 2 _ action adapter(this));
jlabel 2 . settext(" Level 1:100 ");
jLabel2.setBounds(新矩形(414,473,171,21));
content pane . add(jpanel 1);
content pane . add(jbutton 2);
content pane . add(jbutton 1);
content pane . add(jslider 1);
content pane . add(jlabel 1);
content pane . add(jlabel 2);
this . addkey listener(new my listener());
jbutton 1 . addkey listener(new my listener());
jslider 1 . addkey listener(new my listener());
jslider 1 . addchangelistener(new change listener(){
public void state changed(change event e){
快速性= js lider 1 . getvalue();
}
});
}
公共無效運行(){
number . clear();
正缺= 0;
cuowu = 0;
paiduan = " true
while(count & lt;= rush[rush_count]) {
嘗試{
Thread t =新線程(new Tthread());
t . start();
count+= 1;
thread . sleep(1000+(int)(math . random()* 2000));//下壹個生產組的暫停時間
//最快是1。最慢2秒。
} catch (InterruptedException e) {
e . printstacktrace();
}
}
While (true) {//等待最後壹個字符消失。
if (number.size() == 0) {
打破;
}
}
If (zhengque == 0) {//用於未來除法...如果都是對的或錯的,就會出現錯誤。因此..
正雀= 1;
}
if (cuowu == 0) {
CuO Wu = 1;
}
If (paiduan.equals("true")) {//判斷是否是自然結尾。
if(Zheng que/CuO Wu & gt;= 2) {
Joptionpane。顯示消息對話框(空,“恭喜過關”);
rush _ count+= 1;//自動關閉1。
if(rush _ count & lt;rush.length) {
if(快速性& gt10) {//當速度大於10時,將加速度提升到-5。恐怕速度太快了。
快速性-= 5;//速度自動降低10毫秒。
jSlider1.setValue(快速性);//選擇位置
}
Thread t =新線程(this);
t . start();
}否則{
Joption窗格。顯示消息對話框(空,“牛B...妳是清白的……”);
rush _ count = 0;
count = 0;
}
}否則{
Joptionpane。顯示消息對話框(空,“請再接再厲”);
rush _ count = 0;
count = 0;
}
}否則{
rush _ count = 0;
count = 0;
}
}
public void jbutton 1 _ action performed(action event e){
Thread t =新線程(this);
t . start();
}
public void jbutton 2 _ action performed(action event e){
count = rush[rush _ count]+1;
paiduan = " flase
}
Tthread類實現Runnable {
公共無效運行(){
boolean fo = true
int Y = 0,X = 0;
JLabel show = new JLabel();
Show.setFont(新java.awt.Font("宋體",字體。平原,33));
jpanel 1 . add(show);
x = 10+(int)(math . random()* 400);
String參數= list[(int)(math . random()* list . length)]+" ";
Bean Bean = new Bean();
bean.setParameter(參數);
bean . set show(show);
number . add(bean);
show.setText(參數);
while (fo) {
// -數字向下移動。
show.setBounds(新矩形(X,Y += 2,33,33));
嘗試{
Thread.sleep(快速);
} catch (InterruptedException e) {
e . printstacktrace();
}
如果(Y & gt= 419) {
fo =假;
for(int I = number . size()-1;我& gt= 0;我- ) {
Bean bn =((Bean)number . get(I));
if(parameter . equalsignorecase(bn . getparameter()){
CuO Wu+= 1;
JLabel2.setText("正確:"+zhengque+",錯誤:"+cuowu "
+“件”);
number . removeelementat(I);
music _ shibai . play();
打破;
}
}
}
}
}
}
MyListener類擴展KeyAdapter {
公共void按鍵(按鍵事件e) {
string uu = e . getkey char()+" ";
for(int I = 0;我& ltnumber . size();i++) {
Bean Bean =((Bean)number . get(I));
if(uu . equalsignorecase(bean . getparameter()){
正缺+= 1;
number . removeelementat(I);
bean.getShow()。set visible(false);
JLabel2.setText("正確:"+正缺+"個,錯誤:"+cuowu+"個");
music _ cheng gong . play();
打破;
}
}
musci _ anjian . play();
}
}
公共靜態void main(String[] args) {
嘗試{
ui manager . setlookandfeel(ui manager . getsystemlookandfeelclassname());
} catch(異常異常){
exception . printstacktrace();
}
框架Frame = new Frame();
dimension screenSize = toolkit . getdefaulttoolkit()。getScreenSize();
dimension frameSize = frame . getsize();
if(framesize . height & gt;screenSize.height) {
framesize . height = screensize . height;
}
if(framesize . width & gt;screenSize.width) {
framesize . width = screensize . width;
}
frame . set location((screensize . width-framesize . width)/2,
(screensize . height-framesize . height)/2);
frame . set visible(true);
}
}
class frame 1 _ jbutton 2 _ action adapter實現ActionListener {
專用幀適配器;
Frame 1 _ jbutton 2 _ action adapter(幀適配器){
this.adaptee = adaptee
}
public void action performed(action event e){
adaptee . jbutton 2 _ action performed(e);
}
}
類frame 1 _ jbutton 1 _ action adapter實現ActionListener {
專用幀適配器;
Frame 1 _ jbutton 1 _ action adapter(幀適配器){
this.adaptee = adaptee
}
public void action performed(action event e){
adaptee . jbutton 1 _ action performed(e);
}
}
類Bean {
字符串參數= null
JLabel show = null
公共JLabel getShow() {
回歸秀;
}
公共void setShow(JLabel show) {
this.show = show
}
公共字符串getParameter() {
返回參數;
}
public void setParameter(字符串參數){
this.parameter =參數;
}
}