java显示小游戏排行榜
创始人
2024-06-10 16:03:50
0

一、几个Java小游戏代码

package reduce;

import java.applet.Applet;

import java.applet.AudioClip;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.Toolkit;

import javax.sound.sampled.AudioFileFormat;

import javax.sound.sampled.AudioSystem;

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.SwingUtilities;

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 Frame extends JFrame implements Runnable{

JPanel contentPane;

JPanel jPanel1= new JPanel();

JButton jButton1= new JButton();

JSlider jSlider1= new JSlider();

JLabel jLabel1= new JLabel();

JButton jButton2= new JButton();

JLabel jLabel2= new JLabel();

int count= 1, rapidity= 80;// count当前进行的个数, rapidity游标的位置

int zhengque= 0, cuowu= 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'};//随机出现的数字可以自由添加

Vector number= new Vector();

String paiduan="true";

AudioClip Musci_anjian, Music_shibai, Music_chenggong;

public Frame(){

try{

setDefaultCloseOperation(EXIT_ON_CLOSE);

//-----------------声音文件---------------------

Musci_anjian= Applet.newAudioClip(new File("sounds//anjian.wav")

.toURL());

Music_shibai= Applet.newAudioClip(new File("sounds//shibai.wav")

.toURL());

Music_chenggong= Applet.newAudioClip(new File(

"sounds//chenggong.wav").toURL());

//---------------------------------------

jbInit();

} catch(Exception exception){

exception.printStackTrace();

}

}

/**

* Component initialization.

*

*@throws java.lang.Exception

*/

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));

jSlider1.setBounds(new Rectangle(83, 448, 164, 21));

jSlider1.setMaximum(100);

jSlider1.setMinimum(1);

jSlider1.setValue(50);

jLabel1.setText("速度");

jLabel1.setBounds(new Rectangle(35, 451, 39, 18));

jButton2.setBounds(new Rectangle(408, 442, 89, 31));

jButton2.setText("结束");

jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));

jLabel2.setText("第一关:100个");

jLabel2.setBounds(new Rectangle(414, 473, 171, 21));

contentPane.add(jPanel1);

contentPane.add(jButton2);

contentPane.add(jButton1);

contentPane.add(jSlider1);

contentPane.add(jLabel1);

contentPane.add(jLabel2);

this.addKeyListener(new MyListener());

jButton1.addKeyListener(new MyListener());

jSlider1.addKeyListener(new MyListener());

jSlider1.addChangeListener(new ChangeListener(){

public void stateChanged(ChangeEvent e){

rapidity= jSlider1.getValue();

}

});

}

public void run(){

number.clear();

zhengque= 0;

cuowu= 0;

paiduan="true";

while(count<= rush[rush_count]){

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();

}

}

while(true){//等待最后一个字符消失

if(number.size()== 0){

break;

}

}

if(zhengque== 0){//为了以后相除..如果全部正确或者错误就会出现错误.所以..

zhengque= 1;

}

if(cuowu== 0){

cuowu= 1;

}

if(paiduan.equals("true")){//判断是否是自然结束

if(zhengque/ cuowu>= 2){

JOptionPane.showMessageDialog(null,"恭喜你过关了");

rush_count+= 1;//自动加1关

if(rush_count< rush.length){

if(rapidity> 10){//当速度大于10的时候在-5提加速度.怕速度太快

rapidity-= 5;//速度自动减10毫秒

jSlider1.setValue(rapidity);//选择位置

}

Thread t= new Thread(this);

t.start();

} else{

JOptionPane.showMessageDialog(null,"牛B...你通关了..");

rush_count= 0;

count= 0;

}

} else{

JOptionPane.showMessageDialog(null,"请再接再励");

rush_count= 0;

count= 0;

}

} else{

rush_count= 0;

count= 0;

}

}

public void jButton1_actionPerformed(ActionEvent e){

Thread t= new Thread(this);

t.start();

}

public void jButton2_actionPerformed(ActionEvent e){

count= rush[rush_count]+ 1;

paiduan="flase";

}

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())){

cuowu+= 1;

jLabel2.setText("正确:"+ zhengque+"个,错误:"+ cuowu

+"个");

number.removeElementAt(i);

Music_shibai.play();

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())){

zhengque+= 1;

number.removeElementAt(i);

bean.getShow().setVisible(false);

jLabel2.setText("正确:"+ zhengque+"个,错误:"+ cuowu+"个");

Music_chenggong.play();

break;

}

}

Musci_anjian.play();

}

}

public static void main(String[] args){

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch(Exception exception){

exception.printStackTrace();

}

Frame frame= new Frame();

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 Frame adaptee;

Frame1_jButton2_actionAdapter(Frame adaptee){

this.adaptee= adaptee;

}

public void actionPerformed(ActionEvent e){

adaptee.jButton2_actionPerformed(e);

}

}

class Frame1_jButton1_actionAdapter implements ActionListener{

private Frame adaptee;

Frame1_jButton1_actionAdapter(Frame 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;

}

}

我只有一个打字母小游戏

二、紧急!!!用java做一个小游戏有窗口的。。

/*

将以下代码保存为MainFrame.javaJDK1.6编译通过

保存我没有做,也不难。方法我已经空下了,你可以自己写写试试.

把txtGuessRecord.getText()的内容写到文件里就行了

*/

importjava.awt.Dimension;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importjava.util.Locale;

importjava.util.Random;

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;

importjava.util.regex.PatternSyntaxException;

importjavax.swing.Box;

importjavax.swing.BoxLayout;

importjavax.swing.JButton;

importjavax.swing.JComboBox;

importjavax.swing.JFormattedTextField;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JScrollPane;

importjavax.swing.JTextArea;

importjavax.swing.SwingUtilities;

importjavax.swing.UIManager;

importjavax.swing.text.DefaultFormatter;

publicclassMainFrameextendsJFrameimplementsActionListener{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

/**

*@paramargs

*/

privateJLabellblResult;

privateJLabellblInfo;

privateJFormattedTextFieldtxtInput;

privateJTextAreatxtGuessRecord;

privateJButtonbtnGuess;

privateJButtonbtnRestart;

privateJButtonbtnClear;

privateJButtonbtnSave;

privateJComboBoxcbType;

//是否正确

privatebooleanisRight=false;

//最大次数

privatestaticfinalintMAX_TIME=5;

//当前猜测的次数

privatestaticfinalintNUM=0;

privatestaticfinalintLETTER=1;

privatestaticintcurrent_time=0;

//当前题目

privatecharcurrent_puzzle='';

//用户回答

privatecharplayer_answer='';

publicMainFrame(){

initComponent();

setPreferredSize(newDimension(450,220));

pack();

setVisible(true);

setTitle("猜谜游戏");

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

try{

UIManager

.setLookAndFeel(newcom.sun.java.swing.plaf.windows.WindowsLookAndFeel());

SwingUtilities.updateComponentTreeUI(MainFrame.this);

}catch(Exceptionex){

}

}

//初始化组件

privatevoidinitComponent(){

lblResult=newJLabel();

lblInfo=newJLabel("准备好了吗?",JLabel.LEFT);

txtGuessRecord=newJTextArea(5,30);

btnGuess=newJButton("猜一下");

btnRestart=newJButton("开始");

btnClear=newJButton("清除");

btnSave=newJButton("保存");

String[]item=newString[]{"数字","字母"};

cbType=newJComboBox(item);

cbType.setMaximumSize(newDimension(70,20));

Stringps="[a-zA-Z\\d]";

Patternp=Pattern.compile(ps);

txtInput=newJFormattedTextField(newRegexFormatter(p));

txtInput.setMaximumSize(newDimension(55,20));

txtInput.setMinimumSize(newDimension(55,20));

btnRestart.addActionListener(this);

btnGuess.addActionListener(this);

btnClear.addActionListener(this);

btnGuess.setEnabled(false);

txtGuessRecord.setEditable(false);

setLayout(newBoxLayout(getContentPane(),BoxLayout.PAGE_AXIS));

BoxmainBox=Box.createVerticalBox();

add(mainBox);

setText('?');

mainBox.add(lblResult);

Boxbox=Box.createHorizontalBox();

box.add(lblInfo);

mainBox.add(box);

Boxb=Box.createHorizontalBox();

b.add(txtInput);

BoxhBox=Box.createHorizontalBox();

hBox.add(b);

hBox.add(btnGuess);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(btnRestart);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(btnClear);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(btnSave);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(cbType);

mainBox.add(hBox);

JScrollPanescroll=newJScrollPane(txtGuessRecord);

mainBox.add(scroll);

}

@Override

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==btnRestart){

//重玩

restart();

}elseif(e.getSource()==btnGuess)

//猜

guess();

elseif(e.getSource()==btnClear)

//清除

clear();

elseif(e.getSource()==btnSave)

save();

}

//设置显示答案

privatevoidsetText(charc){

StringBuildersb=newStringBuilder();

sb.append("

");

sb.append(c);

sb.append("

");

lblResult.setText(sb.toString());

}

//创建随机字符

privatecharcreateRandomChar(inttype){

Randomrand=newRandom();

intlow=0;

intrange=0;

switch(type){

caseNUM:

low=(int)'0';

range=(int)'9'-low+1;

break;

caseLETTER:

low=(int)'A';

range=(int)'Z'-low+1;

break;

}

inti=rand.nextInt(range)+low;

charc=(char)i;

returnc;

}

//向记录框中输出时间

privatevoidrecordTime(){

Datedate=newDate();

SimpleDateFormatformater=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss",

Locale.US);

Stringsd=formater.format(date);

txtGuessRecord.append(sd);

}

privatevoidguess(){

if(txtInput.getValue()==null)

return;

//用户的答案

player_answer=Character.toUpperCase(txtInput.getValue().toString()

.charAt(0));

//判断答案

if(player_answer

txtGuessRecord.append("小了\n");

elseif(player_answer>current_puzzle)

txtGuessRecord.append("大了\n");

else{

txtGuessRecord.append("正确\n");

isRight=true;

}

//猜了一次

++current_time;

//显示游戏信息

showInfo();

if(isRight||current_time>=MAX_TIME)

stop();

}

//重新开始

privatevoidrestart(){

//记录时间

recordTime();

txtGuessRecord.append("游戏开始\n");

//状态清零

current_time=0;

btnGuess.setEnabled(true);

isRight=false;

current_puzzle=createRandomChar(cbType.getSelectedIndex());

setText('?');

showInfo();

}

//停止游戏

privatevoidstop(){

btnGuess.setEnabled(false);

setText(current_puzzle);

//正确的情况

if(isRight){

Stringinfo=String.format("你用了%d次猜对了\n",current_time);

txtGuessRecord.append(info);

}else

//超过次数的情况

txtGuessRecord.append("你输了\n");

recordTime();

txtGuessRecord.append("游戏结束\n");

}

//显示游戏信息

privatevoidshowInfo(){

Stringinfo=String.format("已经猜了%d次,还剩%d次",current_time,

MAX_TIME-current_time);

lblInfo.setText(info);

}

//清空记录框

privatevoidclear(){

txtGuessRecord.setText("");

}

privatevoidsave(){

//尚未实现

}

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

SwingUtilities.invokeLater(newRunnable(){

publicvoidrun(){

newMainFrame();

}

});

}

//正则格式类,文本框匹配用

classRegexFormatterextendsDefaultFormatter{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

privatePatternpattern;

privateMatchermatcher;

publicRegexFormatter(){

super();

}

publicRegexFormatter(Stringpattern)throwsPatternSyntaxException{

this();

setPattern(Pattern.compile(pattern));

}

publicRegexFormatter(Patternpattern){

this();

setPattern(pattern);

}

publicvoidsetPattern(Patternpattern){

this.pattern=pattern;

}

publicPatterngetPattern(){

returnpattern;

}

protectedvoidsetMatcher(Matchermatcher){

this.matcher=matcher;

}

protectedMatchergetMatcher(){

returnmatcher;

}

publicObjectstringToValue(Stringtext)throwsParseException{

Patternpattern=getPattern();

if(pattern!=null){

Matchermatcher=pattern.matcher(text);

if(matcher.matches()){

setMatcher(matcher);

returnsuper.stringToValue(text);

}

thrownewParseException("Patterndidnotmatch",0);

}

returntext;

}

}

}

一、几个Java小游戏代码

package reduce;

import java.applet.Applet;

import java.applet.AudioClip;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.Toolkit;

import javax.sound.sampled.AudioFileFormat;

import javax.sound.sampled.AudioSystem;

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.SwingUtilities;

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 Frame extends JFrame implements Runnable{

JPanel contentPane;

JPanel jPanel1= new JPanel();

JButton jButton1= new JButton();

JSlider jSlider1= new JSlider();

JLabel jLabel1= new JLabel();

JButton jButton2= new JButton();

JLabel jLabel2= new JLabel();

int count= 1, rapidity= 80;// count当前进行的个数, rapidity游标的位置

int zhengque= 0, cuowu= 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'};//随机出现的数字可以自由添加

Vector number= new Vector();

String paiduan="true";

AudioClip Musci_anjian, Music_shibai, Music_chenggong;

public Frame(){

try{

setDefaultCloseOperation(EXIT_ON_CLOSE);

//-----------------声音文件---------------------

Musci_anjian= Applet.newAudioClip(new File("sounds//anjian.wav")

.toURL());

Music_shibai= Applet.newAudioClip(new File("sounds//shibai.wav")

.toURL());

Music_chenggong= Applet.newAudioClip(new File(

"sounds//chenggong.wav").toURL());

//---------------------------------------

jbInit();

} catch(Exception exception){

exception.printStackTrace();

}

}

/**

* Component initialization.

*

*@throws java.lang.Exception

*/

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));

jSlider1.setBounds(new Rectangle(83, 448, 164, 21));

jSlider1.setMaximum(100);

jSlider1.setMinimum(1);

jSlider1.setValue(50);

jLabel1.setText("速度");

jLabel1.setBounds(new Rectangle(35, 451, 39, 18));

jButton2.setBounds(new Rectangle(408, 442, 89, 31));

jButton2.setText("结束");

jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));

jLabel2.setText("第一关:100个");

jLabel2.setBounds(new Rectangle(414, 473, 171, 21));

contentPane.add(jPanel1);

contentPane.add(jButton2);

contentPane.add(jButton1);

contentPane.add(jSlider1);

contentPane.add(jLabel1);

contentPane.add(jLabel2);

this.addKeyListener(new MyListener());

jButton1.addKeyListener(new MyListener());

jSlider1.addKeyListener(new MyListener());

jSlider1.addChangeListener(new ChangeListener(){

public void stateChanged(ChangeEvent e){

rapidity= jSlider1.getValue();

}

});

}

public void run(){

number.clear();

zhengque= 0;

cuowu= 0;

paiduan="true";

while(count<= rush[rush_count]){

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();

}

}

while(true){//等待最后一个字符消失

if(number.size()== 0){

break;

}

}

if(zhengque== 0){//为了以后相除..如果全部正确或者错误就会出现错误.所以..

zhengque= 1;

}

if(cuowu== 0){

cuowu= 1;

}

if(paiduan.equals("true")){//判断是否是自然结束

if(zhengque/ cuowu>= 2){

JOptionPane.showMessageDialog(null,"恭喜你过关了");

rush_count+= 1;//自动加1关

if(rush_count< rush.length){

if(rapidity> 10){//当速度大于10的时候在-5提加速度.怕速度太快

rapidity-= 5;//速度自动减10毫秒

jSlider1.setValue(rapidity);//选择位置

}

Thread t= new Thread(this);

t.start();

} else{

JOptionPane.showMessageDialog(null,"牛B...你通关了..");

rush_count= 0;

count= 0;

}

} else{

JOptionPane.showMessageDialog(null,"请再接再励");

java显示小游戏排行榜

rush_count= 0;

count= 0;

}

} else{

rush_count= 0;

count= 0;

}

}

public void jButton1_actionPerformed(ActionEvent e){

Thread t= new Thread(this);

t.start();

}

public void jButton2_actionPerformed(ActionEvent e){

count= rush[rush_count]+ 1;

paiduan="flase";

}

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())){

cuowu+= 1;

jLabel2.setText("正确:"+ zhengque+"个,错误:"+ cuowu

+"个");

number.removeElementAt(i);

Music_shibai.play();

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())){

zhengque+= 1;

number.removeElementAt(i);

bean.getShow().setVisible(false);

jLabel2.setText("正确:"+ zhengque+"个,错误:"+ cuowu+"个");

Music_chenggong.play();

break;

}

}

Musci_anjian.play();

}

}

public static void main(String[] args){

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch(Exception exception){

exception.printStackTrace();

}

Frame frame= new Frame();

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 Frame adaptee;

Frame1_jButton2_actionAdapter(Frame adaptee){

this.adaptee= adaptee;

}

public void actionPerformed(ActionEvent e){

adaptee.jButton2_actionPerformed(e);

}

}

class Frame1_jButton1_actionAdapter implements ActionListener{

private Frame adaptee;

Frame1_jButton1_actionAdapter(Frame 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;

}

}

我只有一个打字母小游戏

二、紧急!!!用java做一个小游戏有窗口的。。

/*

将以下代码保存为MainFrame.javaJDK1.6编译通过

保存我没有做,也不难。方法我已经空下了,你可以自己写写试试.

把txtGuessRecord.getText()的内容写到文件里就行了

*/

importjava.awt.Dimension;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importjava.util.Locale;

importjava.util.Random;

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;

importjava.util.regex.PatternSyntaxException;

importjavax.swing.Box;

importjavax.swing.BoxLayout;

importjavax.swing.JButton;

importjavax.swing.JComboBox;

importjavax.swing.JFormattedTextField;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JScrollPane;

importjavax.swing.JTextArea;

importjavax.swing.SwingUtilities;

importjavax.swing.UIManager;

importjavax.swing.text.DefaultFormatter;

publicclassMainFrameextendsJFrameimplementsActionListener{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

/**

*@paramargs

*/

privateJLabellblResult;

privateJLabellblInfo;

privateJFormattedTextFieldtxtInput;

privateJTextAreatxtGuessRecord;

privateJButtonbtnGuess;

privateJButtonbtnRestart;

privateJButtonbtnClear;

privateJButtonbtnSave;

privateJComboBoxcbType;

//是否正确

privatebooleanisRight=false;

//最大次数

privatestaticfinalintMAX_TIME=5;

//当前猜测的次数

privatestaticfinalintNUM=0;

privatestaticfinalintLETTER=1;

privatestaticintcurrent_time=0;

//当前题目

privatecharcurrent_puzzle='';

//用户回答

privatecharplayer_answer='';

publicMainFrame(){

initComponent();

setPreferredSize(newDimension(450,220));

pack();

setVisible(true);

setTitle("猜谜游戏");

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

try{

UIManager

.setLookAndFeel(newcom.sun.java.swing.plaf.windows.WindowsLookAndFeel());

SwingUtilities.updateComponentTreeUI(MainFrame.this);

}catch(Exceptionex){

}

}

//初始化组件

privatevoidinitComponent(){

lblResult=newJLabel();

lblInfo=newJLabel("准备好了吗?",JLabel.LEFT);

txtGuessRecord=newJTextArea(5,30);

btnGuess=newJButton("猜一下");

btnRestart=newJButton("开始");

btnClear=newJButton("清除");

btnSave=newJButton("保存");

String[]item=newString[]{"数字","字母"};

cbType=newJComboBox(item);

cbType.setMaximumSize(newDimension(70,20));

Stringps="[a-zA-Z\\d]";

Patternp=Pattern.compile(ps);

txtInput=newJFormattedTextField(newRegexFormatter(p));

txtInput.setMaximumSize(newDimension(55,20));

txtInput.setMinimumSize(newDimension(55,20));

btnRestart.addActionListener(this);

btnGuess.addActionListener(this);

btnClear.addActionListener(this);

btnGuess.setEnabled(false);

txtGuessRecord.setEditable(false);

setLayout(newBoxLayout(getContentPane(),BoxLayout.PAGE_AXIS));

BoxmainBox=Box.createVerticalBox();

add(mainBox);

setText('?');

mainBox.add(lblResult);

Boxbox=Box.createHorizontalBox();

box.add(lblInfo);

mainBox.add(box);

Boxb=Box.createHorizontalBox();

b.add(txtInput);

BoxhBox=Box.createHorizontalBox();

hBox.add(b);

hBox.add(btnGuess);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(btnRestart);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(btnClear);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(btnSave);

hBox.add(Box.createHorizontalStrut(3));

hBox.add(cbType);

mainBox.add(hBox);

JScrollPanescroll=newJScrollPane(txtGuessRecord);

mainBox.add(scroll);

}

@Override

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==btnRestart){

//重玩

restart();

}elseif(e.getSource()==btnGuess)

//猜

guess();

elseif(e.getSource()==btnClear)

//清除

clear();

elseif(e.getSource()==btnSave)

save();

}

//设置显示答案

privatevoidsetText(charc){

StringBuildersb=newStringBuilder();

sb.append("

");

sb.append(c);

sb.append("

");

lblResult.setText(sb.toString());

}

//创建随机字符

privatecharcreateRandomChar(inttype){

Randomrand=newRandom();

intlow=0;

intrange=0;

switch(type){

caseNUM:

low=(int)'0';

range=(int)'9'-low+1;

break;

caseLETTER:

low=(int)'A';

range=(int)'Z'-low+1;

break;

}

inti=rand.nextInt(range)+low;

charc=(char)i;

returnc;

}

//向记录框中输出时间

privatevoidrecordTime(){

Datedate=newDate();

SimpleDateFormatformater=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss",

Locale.US);

Stringsd=formater.format(date);

txtGuessRecord.append(sd);

}

privatevoidguess(){

if(txtInput.getValue()==null)

return;

//用户的答案

player_answer=Character.toUpperCase(txtInput.getValue().toString()

.charAt(0));

//判断答案

if(player_answer

txtGuessRecord.append("小了\n");

elseif(player_answer>current_puzzle)

txtGuessRecord.append("大了\n");

else{

txtGuessRecord.append("正确\n");

isRight=true;

}

//猜了一次

++current_time;

//显示游戏信息

showInfo();

if(isRight||current_time>=MAX_TIME)

stop();

}

//重新开始

privatevoidrestart(){

//记录时间

recordTime();

txtGuessRecord.append("游戏开始\n");

//状态清零

current_time=0;

btnGuess.setEnabled(true);

isRight=false;

current_puzzle=createRandomChar(cbType.getSelectedIndex());

setText('?');

showInfo();

}

//停止游戏

privatevoidstop(){

btnGuess.setEnabled(false);

setText(current_puzzle);

//正确的情况

if(isRight){

Stringinfo=String.format("你用了%d次猜对了\n",current_time);

txtGuessRecord.append(info);

}else

//超过次数的情况

txtGuessRecord.append("你输了\n");

recordTime();

txtGuessRecord.append("游戏结束\n");

}

//显示游戏信息

privatevoidshowInfo(){

Stringinfo=String.format("已经猜了%d次,还剩%d次",current_time,

MAX_TIME-current_time);

lblInfo.setText(info);

}

//清空记录框

privatevoidclear(){

txtGuessRecord.setText("");

}

privatevoidsave(){

//尚未实现

}

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

SwingUtilities.invokeLater(newRunnable(){

publicvoidrun(){

newMainFrame();

}

});

}

//正则格式类,文本框匹配用

classRegexFormatterextendsDefaultFormatter{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

privatePatternpattern;

privateMatchermatcher;

publicRegexFormatter(){

super();

}

publicRegexFormatter(Stringpattern)throwsPatternSyntaxException{

this();

setPattern(Pattern.compile(pattern));

}

publicRegexFormatter(Patternpattern){

this();

setPattern(pattern);

}

publicvoidsetPattern(Patternpattern){

this.pattern=pattern;

}

publicPatterngetPattern(){

returnpattern;

}

protectedvoidsetMatcher(Matchermatcher){

this.matcher=matcher;

}

protectedMatchergetMatcher(){

returnmatcher;

}

publicObjectstringToValue(Stringtext)throwsParseException{

Patternpattern=getPattern();

if(pattern!=null){

Matchermatcher=pattern.matcher(text);

if(matcher.matches()){

setMatcher(matcher);

returnsuper.stringToValue(text);

}

thrownewParseException("Patterndidnotmatch",0);

}

returntext;

}

}

}

相关内容

热门资讯

十八禁游戏排行榜 一、十八禁游戏制作公司ILLUSIONILLUSION(イリュージョン)是日本株式会社Eye One...
steam手柄游戏排行榜 一、steam十大必玩手柄游戏列表:1、《真人快打11》《真人快打11》(Mortal Kombat...
h iphone游戏排行榜 各位老铁们好,相信很多人对h iphone游戏排行榜都不是特别的了解,因此呢,今天就来为大家分享下关...
日本好玩h游戏排行榜 一、日本安卓h性游戏下载.很无语有这么难谁告知!!!您好:成人色情游戏是国家明令禁止的游戏,正规的应...
steam游戏排行榜怎么查 一、steam游戏排行榜在哪里看steam游戏排行榜通过官方网站点击进入Steam官网查看。Stea...
hgame游戏排行榜 大家好,hgame游戏排行榜相信很多的网友都不是很明白,包括《怪异恐剧院》:令人惊艳的HGame,相...
美国app游戏排行榜 一、手游排行榜2023前十名手游排行榜2023前十名:《蛋仔派对》《桃源深处有人家》《泰拉瑞亚》《弹...
td游戏排行榜 一、2023好玩的td游戏好玩的td手游2023年,随着技术的不断发展,各种趣味性质的TD游戏也相继...
最新消消乐类的游戏排行榜 一、消消乐游戏排行榜消消乐游戏排行榜如下:《开心消消乐》、《宾果消消消》、《海滨消消乐》、《旋转消消...
变态版游戏盒子排行榜下载 一、十大变态游戏盒子排行榜今天小编要为大家带来的是十大变态游戏盒子排行榜,都是全网高人气的bt手游平...