JOptionPane.showMessageDialog(null,"
jTextField1.setText("");
jTextField1.requestFocus();
return;
}
if(guess==number){
endTime=System.currentTimeMillis();
太小啦");
4.6.成绩判断模块
//判断成绩。
switch(counter){
case1:
JOptionPane.showMessageDialog(nuII,"
吧!
!
”);
break;
case2:
case3:
case4:
你是神么?
?
这也太给力了
习哦!
");
花了"
case5:
case6:
case7:
JOptionPane.showMessageDialog(nuII,
break;
default:
JOptionPane.showMessageDialog(nuII,"
"这么快就猜对了,很不错哦!
");
猜了半天才猜出来,还要多多练
break;
}
JOptionPane.showMessageDialog(null,"您总共猜了”+counter+"次共
秒的时间答对正确答案!
”);
+(endTime-startTime)/1000+"}jTextFieldl.setText(””);jTextField1.requestFocus();
}
5.程序流程图
系统结束计时
6.异常处理
系统统计猜数次数
我们在运行程序时往往会出现许多错误,而Java语言提供了异常(Exception)处理机制
帮助程序员发现并处理异常。
所谓异常,就是在程序执行过程中能干扰程序正常流程的事件。
导致异常的原因很多,比如文件找不到、数组越界、除以零等。
当异常出现时,一个异常对象将被自动生成并传递给Java"运行时环境”,如果"运行时环境”找不到异常句柄,Java
程序便会自行中断。
try{statement(s);
}catch(exceptiontype1name){
statement(s);
}catch(exceptiontype2name){statement(s);
}finally{
statement(s);
}
try语句括起来的语句可能抛出异常。
try语句至少要搭配一个catch语句或finally语句,
不能单独使用,我设计的猜数字游戏需要从控制台获取玩家输入的数字,有多个异常处理
try{
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);getContentPane().setLayout(nuII);
}catch(Exceptione){
e.printStackTrace();
}
try{
//获取玩家的输入
guess=
=Integer.parseInt(jTextField1.getText());
}catch(Exceptione)
7.调试分析
(V)菇了半天才箱出乘•还要彗娄琳习耶曹
|硝定]
总结
经过这几天努力终于完成了这份课设,虽然在操作的过程中我都遇到了许多的困难,但是却使我得到了许多的意外收获。
Java是一种简单的,面向对象的,分布式的,解释型的,
健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
在写代码的过程中我们也遇到了一些的困难,就是对一些有关Java语言的不理解,我便又到课本中去查找。
一个
项目的成败关键不全在于技术。
要想在一个愉快的氛围里边以轻松的心情来完成紧张的工作,严谨的态度和工作的热情都是必不可少的。
以前上课时有许多的问题并没有真正的认识到,但通过这次试验的制作,使我掌握了许多更重要的知识点。
参考文献
[1]黄明等,梁旭,周绍斌•《Java课程设计》电子工业出版社2006
[2]杨昭.《二级Java语言程序设计教程》中国水利水电出版社2006
[3]赵文靖•《Java程序设计基础与上机指导》清华大学出版社2006
[4]张广彬,孟红蕊,张永宝•《Java课程设计案例精编》清华大学出版社2007
[5]黄晓东•《Java课程设计案例精编(第一版)》中国水利水电出版社2004
⑹[美]CayS.Horstmann程峰等译.《JAVA2核心技术》机械工业出版社2003
[7]
西安电子科技大学出版社2006
中国水利水电出版社2006
机械工业出版社.2008.
人民邮电出版社.2006.
赵毅主.《跨平台程序设计语言一Java»
[8]王路群.《Java高级程序设计》
[9]夏宽理.《Java语言程序设计》
[10]丁新民.《Java程序设计教程》
程序附页
packageliupeng;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjava.util.Random;
importjavax.swing.JButton;
importjavax.swing.JLabel;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
importjavax.swing.JTextField;
importjavax.swing.WindowConstants;
importjava.awt.FlowLayout;
publicclassGuessNumextendsjavax.swing.JFrame{privateJLabeljLabel1;
privateJTextFieldjTextField1;
privateJButtonjButton1;
privateintnumber=0;
privateintcounter=0;
longstartTime=System.currentTimeMillis();
longendTime;
*新建一个随机数产生器,然后生成一个1到100之间的整数
*/
publicGuessNum(){
super("刘鹏");
initChuankou();
Randomrandom=newRandom();
number=random.nextInt(100);//
}
产生一个1-100间的随机数
*初始化窗口组件
*/
privatevoidinitChuankou(){
try{
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);〃窗口关
闭时销毁窗口
getContentPane().setLayout(nuII);//
设置窗口布局为绝对布局
JFrameframe=newJFrame("TestButtons");
frame.setLayout(newFIowLayout());
jLabell=newJLabeI();
getContentPane().add(jLabeI1);
jLabel1.setText("欢迎进入有趣的猜数字游戏!
请输入1〜100中的任
意一个数:
");
jLabeI1.setBounds(2,0,200,50);//设置标签位置
jTextFieId1=newJTextFieId();
getContentPane().add(jTextFieId1);jTextFieId1.setBounds(50,60,112,28);
jTextFieId1.addKeyListener(newKeyAdapter(){//
听-监听回车键
publicvoidkeyPressed(KeyEventevt){
jTextFieId1KeyPressed(evt);
}
});
文本框添加键盘按键监
jButton1=newJButton();
getContentPane().add(jButton1);
jButtonl.setText(”确定");
jButtonl.setBounds(70,110,60,28);
jButton1.addActionListener(newActionListener(){//按钮添加监听
publicvoidactionPerformed(ActionEventevt){
jButton1ActionPerformed(evt);//按钮被点击时执行该
方法
}
});
pack();
this.setSize(220,200);//设置窗口大小
setLocationRelativeTo(null);//设置窗口在显示器居中显示
}catch(Exceptione){
e.printStackTrace();
}
setVisible(true);
}
privatevoidjButton1ActionPerformed(ActionEventevt){intguess=0;//记录玩家所猜测的数字
counter++;//计数器增加一。
try{
//获取玩家的输入
guess=Integer.parseInt(jTextField1.getText());
}catch(Exceptione){
//如果玩家不是输入一个合法的整数,则让他重新输入。
JOptionPane.showMessageDialog(null,"数字不合法,请输入一个1-100之间
的整数!
”);//显示一个对话框
jTextFieldl.setText(””);//jTextField1.requestFocus();〃return;
}
清空文本框内容
文本框获取输入焦点
//对玩家的输入进行判断。
if(guess>number){
JOptionPane.showMessageDialog(null,"
jTextField1.setText("");
jTextField1.requestFocus();
return;
}
if(guessJOptionPane.showMessageDialog(null,"
jTextField1.setText("");
jTextField1.requestFocus();
return;
}
if(guess==number){
endTime=System.currentTimeMillis();
猜大了哦!
!
");
太小啦");
吧!
!
");
//判断成绩。
switch(counter){
case1:
JOptionPane.showMessageDialog(nuII,"
你是神么?
?
这也太给力了
break;
case2:
case3:
case4:
case5:
case6:
JOptionPane.showMessageDialog(nuII,
"这么快就猜对了,很不错哦!
”);
break;
default:
猜了半天才猜出来,还要多多练
JOptionPane.showMessageDialog(nuII,"
习哦!
");
break;
您总共猜了”+counter+"次共
}
JOptionPane.showMessageDialog(null,"
花了"
秒的时间答对正确答案!
”);
+(endTime-startTime)/1000+"
jTextField1.setText(””);jTextField1.requestFocus();
}
privatevoidjTextField1KeyPressed(KeyEventevt){
//监听文本框回车if(evt.getKeyCode()==KeyEvent.VK_ENTER){
publicstaticvoidmain(String[]args){
System.out.println(”欢迎来到猜数字游戏");
newGuessNum();
}
}