java实现猜数字小游戏(Swing版)

时间:2021-05-19

2008年的时候,在学习Java how to program第五版的时候,写过一个猜数字小游戏,是用Applet写的;
现在,我要用Swing重写这个小游戏,同时,加入一些新功能,如:背景颜色(红色表示偏高,蓝色表示偏低)、弹框、字体控制、布局管理器的使用。

运行截屏:

代码如下:

//Guess a number between 1 and 1000//Java how to program, 10/e, Exercise 12.14//by pandenghuang@163.comimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.BorderLayout;import static java.awt.BorderLayout.*; public class NumberGuessGame2016 extends JFrame {int number,random,counter=0;JLabel welcomeJLabel;JLabel hintJLabel;JTextField guessField;JPanel panel;//显示不同背景色 public NumberGuessGame2016() { super("猜数字小游戏游戏"); setLayout(new BorderLayout()); panel=new JPanel(); panel.setBackground(Color.WHITE); welcomeJLabel= new JLabel("游戏规则:已随机生成一个1到1000的整数,您能在10次以内猜出来吗?"); welcomeJLabel.setFont(new Font("Simsun",1,10)); add(welcomeJLabel,NORTH); guessField=new JTextField(20); guessField.setFont(new Font("Arial",1,10)); panel.add(guessField); add(panel); //默认添加到中间 hintJLabel= new JLabel(""); add(hintJLabel,SOUTH); hintJLabel.setFont(new Font("Simsun",1,10)); TextFieldHandler handler=new TextFieldHandler(); guessField.addActionListener(handler); random=(int)(1+1000*Math.random()); } private class TextFieldHandler implements ActionListener { // process textfield events @Override public void actionPerformed (ActionEvent event) { while(true){ number=Integer.parseInt(guessField.getText()); while(number!=random) { number=Integer.parseInt(guessField.getText()); if(number>random) { hintJLabel.setText("猜高了,不要放弃哦↖(^ω^)↗。已试错"+(++counter)+"次"); guessField.setText(""); panel.setBackground(Color.RED); } else { hintJLabel.setText("猜低了,请继续!已试错"+(++counter)+"次"); panel.setBackground(Color.BLUE); guessField.setText(""); } } //猜中后的用户提示 if (counter<10) JOptionPane.showMessageDialog(null, "恭喜你,猜中了,难道你知道答案?O(∩_∩)O~"); else if (counter==10) JOptionPane.showMessageDialog(null, "辛苦了,终于猜中了!"); else JOptionPane.showMessageDialog(null, "您终于猜中了╮(╯▽╰)╭,您其实可以做得更好的!"); //开始下一轮猜数字游戏前的初始化工作 guessField.setText(""); random=(int)(1+1000*Math.random()); counter=0; } }} public static void main(String[] args){ NumberGuessGame2016 f = new NumberGuessGame2016(); // create ListFrame f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(400,300); f.setVisible(true); }}

更多有趣的经典小游戏实现专题,也分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章