用Java编写一个抽奖游戏要求: 1.用户单击“开始”按钮进行图片滚动展示单击放大抽奖,单

头脑风暴之心算24点游戏JAVA代码示例详解
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
下文是用Java编写的一个扑克牌游戏,详细说明了定制游戏的规则及代码的片段。
游戏规则:[请玩家仔细阅读]
(1)点击开始游戏进行游戏,玩家初始积分是40分,当玩家积分超过100分时,玩家赢,低于0分时,玩家输;
(2)游戏开始时,会自动随机生成一定可以通过四则运算得到24的四张扑克牌【J、Q、K、大小鬼记作10】;
(3)游戏过程中,玩家可以刷新扑克牌,但每刷新一次都会扣3分;
(4)玩家将四张扑克牌,用+、-、*、/及适当的括号组合起来,并把组合的表达式【用英文输入法】填到输入框里面【注意每张纸牌只可以使用一次】;
(5)单击确定按钮,游戏将会判断你输入的表达式是否符合数学规律,及是否为游戏显示的四张扑克牌的上的数字;
(6)如果输入合法,将系统将计算玩家所输入的表达式的值,如果正确则得5分,有鬼且正确加10分,错误扣2分;
(7)若玩家在1分30秒后才算出答案,则得4分,有鬼得8分,错误扣2分;
Java代码片段:
1.&import java.awt.BorderL&
2.&import java.awt.C&
3.&import java.awt.C&
4.&import java.awt.D&
5.&import java.awt.FlowL&
6.&import java.awt.F&
7.&import java.awt.L&
8.&import java.awt.TextF&
9.&import java.awt.event.ActionE&
10.&import java.awt.event.ActionL&
11.&import java.awt.event.WindowA&
12.&import java.awt.event.WindowE&
13.&import java.net.URL;&
14.&import java.util.R&
15.&import javax.swing.ImageI&
16.&import javax.swing.JB&
17.&import javax.swing.JF&
18.&import javax.swing.JL&
19.&import javax.swing.JP&
20.&import javax.swing.JTextA&
23.&public class Calculate24 implements ActionListener{&&
24.&&&& JFrame frame=new JFrame();//创建窗口框架&
25.&&&& Dimension screen=frame.getToolkit().getScreenSize();//获取显示器的分辨率&
26.&&&& Container con=frame.getContentPane();//给窗体框架添加容器&
27.&&&& TextField& txtField=new TextField(30);//输入表达式的区域&
28.&&&& JPanel Buttompnl=new JPanel(); //按钮和其他组件的面板&
29.&&&& private int count=43;//初始积分40&
30.&&&& JLabel Title=new JLabel(&欢迎使用头脑风暴之心算24点----刘学炜、范碧天、许培涛、陈燕茜同组合作设计&);&
31.&&&& JTextArea Count=new JTextArea();//用于显示游戏规则及提示&
32.&&&& MyTimer timeshow=new MyTimer();//显示时间&
33.&&&& JPanel pokerPanel=new JPanel();//显示扑克牌的面板&
34.&&&& JButton btnStart=new JButton(&开始游戏/洗牌&);//开始游戏和刷牌的按钮&
35.&&&& JButton btnOk=new JButton(&确定&);//确定按钮&
36.&&&& Label label=new Label(&请输入表达式:&);//显示输入表达式&
37.&&&& JLabel poker1=new& JLabel();//显示四张扑克牌&&&&
38.&&&& JLabel poker2=new& JLabel();&&&&&
39.&&&& JLabel poker3=new& JLabel();&&&&&
40.&&&& JLabel poker4=new& JLabel();&&&&&
41.&&&& private Check c=new Check();//引入check类的对象&
42.&&&& Random ran=new Random();//引入随机函数类对象&
43.&&&& private float [] myStatus=new float[4];//四张扑克牌上对应的数字&
44.&&&& private char [] mystatus=new char[4];//四张扑克牌上对应的花色&
45.&&&& private float[] numbers=new float[4];//输入表达式的四个数字&
46.&&&& private float[] different=new float[4];//调整积分的差别&
47.&&&& private boolean addscore=//判断是否加双倍积分&
50.&&&& Calculate24(){&&&&&&&&&&&&&&&&&&
51.&&&&&&&&&&& frame.setTitle(&头脑风暴之心算24点&);&
52.&&&&&&&&&&& Count.setEditable(false);&
53.&&&&&&&&&&& Count.setLineWrap(true);&
54.&&&&&&&&&&& Count.setWrapStyleWord(true);&
55.&&&&&&&&&&& Count.setSize(600, 85);&
56.&&&&&&&&&&& Count.setBackground(new Color(18,132,57));&
57.&&&&&&&&&&& Count.setText(&游戏规则:[请玩家仔细阅读]& +&
58.&&&&&&&&&&&&&&&&&&&& &\n(1)点击开始游戏进行游戏,玩家初始积分是40分,当玩家积分超过100分时,玩家赢,低于0分时,玩家输;& +&
59.&&&&&&&&&&&&&&&&&&&& &\n(2)游戏开始时,会自动随机生成一定可以通过四则运算得到24的四张扑克牌【J、Q、K、大小鬼记作10】;& +&
60.&&&&&&&&&&&&&&&&&&&& &\n(3)游戏过程中,玩家可以刷新扑克牌,但每刷新一次都会扣3分;&+&
61.&&&&&&&&&&&&&&&&&&&& &\n(4)玩家将四张扑克牌,用+、-、*、/及适当的括号组合起来,并把组合的表达式【用英文输入法】填到输入框里面【注意每张纸牌只可以使用一次】;&+&
62.&&&&&&&&&&&&&&&&&&&& &\n(5)单击确定按钮,游戏将会判断你输入的表达式是否符合数学规律,及是否为游戏显示的四张扑克牌的上的数字;&+&
63.&&&&&&&&&&&&&&&&&&&& &\n(6)如果输入合法,将系统将计算玩家所输入的表达式的值,如果正确则得5分,有鬼且正确加10分,错误扣2分;& +&
64.&&&&&&&&&&&&&&&&&&&& &\n(7)若玩家在1分30秒后才算出答案,则得4分,有鬼得8分,错误扣2分;&
65.&&&&&&&&&&&&&&&&&&&&&&& );&
66.&&&&&&&&&&&&&
67.&&&&&&&&&&& //界面组件的相关设计&
68.&&&&&&&&&&&& con.add(Title,BorderLayout.NORTH);&
69.&&&&&&&&&&&& con.add(Buttompnl,BorderLayout.SOUTH);&
70.&&&&&&&&&&&& con.add(pokerPanel,BorderLayout.CENTER);&&&&&
71.&&&&&&&&&&&&&&
72.&&&&&&&&&&&& Buttompnl.add(btnStart);&
73.&&&&&&&&&&&& Buttompnl.add(label);&
74.&&&&&&&&&&&& Buttompnl.add(txtField);&
75.&&&&&&&&&&&&&&
76.&&&&&&&&&&&& btnStart.setActionCommand(&start&);&
77.&&&&&&&&&&&& btnStart.addActionListener(this);//添加开始按钮监听器&
78.&&&&&&&&&&&& btnOk.setActionCommand(&ok&);&
79.&&&&&&&&&&&& btnOk.addActionListener(this); //添加确定按钮监听器&&&&&&&&&&
80.&&&&&&&&&&&& pokerPanel.add(poker1);&
81.&&&&&&&&&&&& pokerPanel.add(poker2);&
82.&&&&&&&&&&&& pokerPanel.add(poker3);&
83.&&&&&&&&&&&& pokerPanel.add(poker4);&
84.&&&&&&&&&&&& pokerPanel.add(Count,BorderLayout.SOUTH);&
85.&&&& }&
86.&&&&&&&&&&
91.&&&& //监听器设计&
92.&&&& public void actionPerformed(ActionEvent e) {&
93.&&&&&&&& //按下开始按钮&
94.&&&&&&&& Count.setFont(new Font(&Dialog&,Font.PLAIN,20));&&&
96.&&&&&&&& if(e.getActionCommand().equals(&start&)){&
97.&&&&&&&&&&&& timeshow.usedTime=0;//时间归零&
98.&&&&&&&&&&&& timeshow.timer.start(); //开始计时&&&&&&&
99.&&&&&&&&&&&& Buttompnl.add(btnOk);&
100.&&&&&&&&&&&& Buttompnl.add(timeshow.usedTimeLabel);&
101.&&&&&&&&&&&& timeshow.timeText.setText(&0分0秒&);&
102.&&&&&&&&&&&& Buttompnl.add(timeshow.timeText);&
103.&&&&&&&&&&&& count-=3;//刷牌扣3分&
104.&&&&&&&&&&&& Count.setText(&\n\n您目前的积分是:&+count+&
105.&&&&&&&&&&&&&&&&&&&& &\n上一道题的系统答案是:&+c.outputs);&
106.&&&&&&&&&&&& try{for(int i=0;i&4;i++){&
107.&&&&&&&&&&&&&&&& myStatus[i]=(float) ((int)(ran.nextFloat()*14+1));//随机产生四张牌&
108.&&&&&&&&&&&&&&&& mystatus[i]=(char) ('A'+(int)(ran.nextFloat()*4));//随机产生花色&
109.&&&&&&&&&&&&&&&& if(myStatus[i]&10f){//对J、Q、K、鬼作10处理&
110.&&&&&&&&&&&&&&&& different[i]=myStatus[i]-10f;&
111.&&&&&&&&&&&&&&&& myStatus[i]-=different[i];&
112.&&&&&&&&&&&&&&&& }&
113.&&&&&&&&&&&&&&&& else
114.&&&&&&&&&&&&&&&&& different[i]=0f;&
115.&&&&&&&&&&&&&&&& if(i==3&&!c.check(myStatus))//检验所产生的纸牌是否能够算出24&
116.&&&&&&&&&&&&&&&& i=2;&&&&&
117.&&&&&&&&&&&& }&
118.&&&&&&&&&&&&&&
119.&&&&&&&&&&&&&&&& if(count&0){//查看刷牌后剩余的积分是否小于0&
120.&&&&&&&&&&&&&&&&&&&& timeshow.timer.stop();//停止计时&
121.&&&&&&&&&&&&&&&&&&&& timeshow.usedTime=0;//重新时间归零&
122.&&&&&&&&&&&&&&&&&&&& for(int i=0;i&4;i++){//返回初始界面&
123.&&&&&&&&&&&&&&&&&&&&&&&& myStatus[i]=0f;&
124.&&&&&&&&&&&&&&&&&&&&&&&& mystatus[i]='A';&
125.&&&&&&&&&&&&&&&&&&&& }&
126.&&&&&&&&&&&&&&&&&&&&&&&& NewPanel(myStatus,mystatus);&
127.&&&&&&&&&&&&&&&&&&&&&&&& Buttompnl.remove(btnOk);&
128.&&&&&&&&&&&&&&&&&&&&&&&& txtField.setText(&&);&
129.&&&&&&&&&&&&&&&&&&&&&&&& Count.setFont(new Font(&Dialog&,Font.PLAIN,12));&
130.&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&游戏规则:[请玩家仔细阅读]& +&
131.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(1)点击开始游戏进行游戏,玩家初始积分是40分,当玩家积分超过100分时,玩家赢,低于0分时,玩家输;& +&
132.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(2)游戏开始时,会自动随机生成一定可以通过四则运算得到24的四张扑克牌【J、Q、K、大小鬼记作10】;& +&
133.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(3)游戏过程中,玩家可以刷新扑克牌,但每刷新一次都会扣3分;&+&
134.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(4)玩家将四张扑克牌,用+、-、*、/及适当的括号组合起来,并把组合的表达式【用英文输入法】填到输入框里面【注意每张纸牌只可以使用一次】;&+&
135.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(5)单击确定按钮,游戏将会判断你输入的表达式是否符合数学规律,及是否为游戏显示的四张扑克牌的上的数字;&+&
136.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(6)如果输入合法,将系统将计算玩家所输入的表达式的值,如果正确则得5分,有鬼且正确加10分,错误扣2分;& +&
137.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(7)若玩家在1分30秒后才算出答案,则得4分,有鬼得8分,错误扣2分;&
138.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& );&
139.&&&&&&&&&&&&&&&&&&&&&&&& count=43;//初始积分40&
140.&&&&&&&&&&&&&&&&&&&&&&&& new MasgDlg(this,&对不起,挑战失败!重新游戏请按【确定】,退出游戏请按【退出】&);&
141.&&&&&&&&&&&&&&&&&&&&&&&
142.&&&&&&&&&&&&&&&&&&&& }&
143.&&&&&&&&&&&&&&&& else{&
144.&&&&&&&&&&&&&&&& for(int i=0;i&4;i++)&
145.&&&&&&&&&&&&&&&&&&&& myStatus[i]+=different[i];&
146.&&&&&&&&&&&& NewPanel(myStatus,mystatus);//显示生成的四张扑克牌&
147.&&&&&&&&&&&& for(int i=0;i&4;i++){&
148.&&&&&&&&&&&&&&& myStatus[i]-=different[i];&
149.&&&&&&&&&&&&&&& if(different[i]==4)//双倍加分条件,遇鬼&
150.&&&&&&&&&&&&&&&&& addscore=&
151.&&&&&&&&&&&&& }&
152.&&&&&&&&&&&& }&
153.&&&&&&&&& }catch(Exception e1){&
154.&&&&&&&&&&&&&&&
155.&&&&&&&&& }&
156.&&&&&&&& }&
157.&&&&&&&& //按下确定按钮&
158.&&&&&&&& else if (e.getActionCommand().equals(&ok&)){&
159.&&&&&&&&&&&& try{float result=calculateString(txtField.getText().trim());&&&&&&&&&&&&&
160.&&&&&&&&&&&&&&&& if(result==-1f){//输入不合法,或者没有输入正确的数字&
161.&&&&&&&&&&&&&&&&&&&& txtField.requestFocus();&
162.&&&&&&&&&&&&&&&&&&&& new MsgDlg(&您输入的表达式不合法或你使用的数字不是扑克牌上的数字,请重新输入!&,this);&&&&&&&&&&&&&&&&
163.&&&&&&&&&&&&&&&& }else if(result!=24f){//输入合法,但计算结果不是24&
164.&&&&&&&&&&&&&&&&&&&& timeshow.usedTime-=8%60;//减去输入时间&
165.&&&&&&&&&&&&&&&&&&&& count-=2;&& //错误扣2分&&&&&&&&&&
166.&&&&&&&&&&&&&&&&&&&& if(count&0){&&& //判断积分是否小于0&
167.&&&&&&&&&&&&&&&&&&&&&&&& timeshow.timer.stop();&
168.&&&&&&&&&&&&&&&&&&&&&&&& timeshow.usedTime=0;&
169.&&&&&&&&&&&&&&&&&&&&&&&& timeshow.timeText.setText(&0分0秒&);&
170.&&&&&&&&&&&&&&&&&&&&&&&& for(int i=0;i&4;i++){//返回初始界面&
171.&&&&&&&&&&&&&&&&&&&&&&&&&&&& myStatus[i]=0f;&
172.&&&&&&&&&&&&&&&&&&&&&&&&&&&& mystatus[i]='A';&
173.&&&&&&&&&&&&&&&&&&&&&&&& }&
174.&&&&&&&&&&&&&&&&&&&&&&&&&&&& NewPanel(myStatus,mystatus);&
175.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Buttompnl.remove(btnOk);&
176.&&&&&&&&&&&&&&&&&&&&&&&&&&&& txtField.setText(&&);&
177.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setFont(new Font(&Dialog&,Font.PLAIN,12));&
178.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&游戏规则:[请玩家仔细阅读]& +&
179.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(1)点击开始游戏进行游戏,玩家初始积分是40分,当玩家积分超过100分时,玩家赢,低于0分时,玩家输;& +&
180.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(2)游戏开始时,会自动随机生成一定可以通过四则运算得到24的四张扑克牌【J、Q、K、大小鬼记作10】;& +&
181.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(3)游戏过程中,玩家可以刷新扑克牌,但每刷新一次都会扣3分;&+&
182.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(4)玩家将四张扑克牌,用+、-、*、/及适当的括号组合起来,并把组合的表达式【用英文输入法】填到输入框里面【注意每张纸牌只可以使用一次】;&+&
183.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(5)单击确定按钮,游戏将会判断你输入的表达式是否符合数学规律,及是否为游戏显示的四张扑克牌的上的数字;&+&
184.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(6)如果输入合法,将系统将计算玩家所输入的表达式的值,如果正确则得5分,有鬼且正确加10分,错误扣2分;& +&
185.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(7)若玩家在1分30秒才算出答案,则得4分,有鬼得8分,错误扣2分;&
186.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& );&
187.&&&&&&&&&&&&&&&&&&&&&&&&&&&& count=43;&
188.&&&&&&&&&&&&&&&&&&&&&&&&&&&& new MasgDlg(this,&对不起,挑战失败!重新游戏请按【确定】,退出游戏请按【退出】&);&
189.&&&&&&&&&&&&&&&&&&&& }&
190.&&&&&&&&&&&&&&&&&&&& else//输出用户所输入的表达式的值&
191.&&&&&&&&&&&&&&&&&&&& {&
192.&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&\n您目前的积分是:&+count+&\n对不起,您输入的表达式的值是&+result+&,扣除2分,请重新输入!&);&
193.&&&&&&&&&&&&&&&&&&&& }&
194.&&&&&&&&&&&&&&&&&&&&&&
195.&&&&&&&&&&&&&&&& }else if(result==24f){//输入正确,得到24&
196.&&&&&&&&&&&&&&&&&&&& timeshow.usedTime-=8%60;//减去输入时间&
197.&&&&&&&&&&&&&&&&&&&& if(addscore){//遇鬼,双倍积分&
198.&&&&&&&&&&&&&&&&&&&&&&&& addscore=&
199.&&&&&&&&&&&&&&&&&&&&&&&& if(timeshow.usedTime&90){//遇鬼,超时加分方法&
200.&&&&&&&&&&&&&&&&&&&&&&&&&&&& count+=8;&&&&&&&&&&&&&&&&&&&&&&&&
201.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&\n您目前的积分是:&+count+&\n恭喜你,你的输入正确!但超出1分30秒,获得8分奖励,请做下一道题&+&
202.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n上一道题的系统答案是:&+c.outputs);&
203.&&&&&&&&&&&&&&&&&&&&&&&& }&
204.&&&&&&&&&&&&&&&&&&&&&&&& else{//遇鬼,正常加分方法&
205.&&&&&&&&&&&&&&&&&&&&&&&&&&&&& count+=10;&&&&&&
206.&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&\n您目前的积分是:&+count+&\n恭喜你,你的输入正确!获得10分奖励,请做下一道题& +&
207.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n上一道题的系统答案是:&+c.outputs);&
208.&&&&&&&&&&&&&&&&&&&&&&&&&& }&
209.&&&&&&&&&&&&&&&&&&&&&&&&&&
210.&&&&&&&&&&&&&&&&&&&& }&
211.&&&&&&&&&&&&&&&&&&&& else{//普通加分&
212.&&&&&&&&&&&&&&&&&&&&&&&& if(timeshow.usedTime/60&=2){//超时,普通加分&
213.&&&&&&&&&&&&&&&&&&&&&&&&&&&& count+=4;&&&&&&&&&&&&&&&&&&&&&&&&
214.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&\n您目前的积分是:&+count+&\n恭喜你,你的输入正确!但超出1分30秒,获得4分奖励,请做下一道题&+&
215.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n上一道题的系统答案是:&+c.outputs);&
216.&&&&&&&&&&&&&&&&&&&&&&&& }&
217.&&&&&&&&&&&&&&&&&&&&&&&& else{//普通加分&
218.&&&&&&&&&&&&&&&&&&&&&&&&&&&&& count+=5;&
219.&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&\n您目前的积分是:&+count+&\n恭喜你,你的输入正确!获得5分奖励,请做下一道题&+&
220.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n上一道题的系统答案是:&+c.outputs);&
221.&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&
222.&&&&&&&&&&&&&&&&&&&&&&&&&&
223.&&&&&&&&&&&&&&&&&&&&&& }&
224.&&&&&&&&&&&&&&&&&&&& timeshow.usedTime = 0;&&&&
225.&&&&&&&&&&&&&&&&&&&& txtField.setText(&&);&
226.&&&&&&&&&&&&&&&&&&&& txtField.requestFocus();&
227.&&&&&&&&&&&&&&&&&&&& if(count&=100){&
228.&&&&&&&&&&&&&&&&&&&&&&&& timeshow.timer.stop();&
229.&&&&&&&&&&&&&&&&&&&&&&&& timeshow.usedTime=0;&
230.&&&&&&&&&&&&&&&&&&&&&&&& timeshow.timeText.setText(&0分0秒&);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
231.&&&&&&&&&&&&&&&&&&&&&&&& for(int i=0;i&4;i++){&
232.&&&&&&&&&&&&&&&&&&&&&&&&&&&& myStatus[i]=0f;&
233.&&&&&&&&&&&&&&&&&&&&&&&&&&&& mystatus[i]='A';&
234.&&&&&&&&&&&&&&&&&&&&&&&& }&
235.&&&&&&&&&&&&&&&&&&&&&&&&&&&& NewPanel(myStatus,mystatus);&
236.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Buttompnl.remove(btnOk);&
237.&&&&&&&&&&&&&&&&&&&&&&&&&&&& txtField.setText(&&);&
238.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setFont(new Font(&Dialog&,Font.PLAIN,12));&
239.&&&&&&&&&&&&&&&&&&&&&&&&&&&& Count.setText(&游戏规则:[请玩家仔细阅读]& +&
240.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(1)点击开始游戏进行游戏,玩家初始积分是40分,当玩家积分超过100分时,玩家赢,低于0分时,玩家输;& +&
241.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(2)游戏开始时,会自动随机生成一定可以通过四则运算得到24的四张扑克牌【J、Q、K、大小鬼记作10】;& +&
242.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(3)游戏过程中,玩家可以刷新扑克牌,但每刷新一次都会扣3分;&+&
243.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(4)玩家将四张扑克牌,用+、-、*、/及适当的括号组合起来,并把组合的表达式【用英文输入法】填到输入框里面【注意每张纸牌只可以使用一次】;&+&
244.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(5)单击确定按钮,游戏将会判断你输入的表达式是否符合数学规律,及是否为游戏显示的四张扑克牌的上的数字;&+&
245.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(6)如果输入合法,将系统将计算玩家所输入的表达式的值,如果正确则得5分,有鬼且正确加10分,错误扣2分;& +&
246.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &\n(7)若玩家在1分30秒后才算出答案,则得4分,有鬼得8分,错误扣2分;&
247.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& );&
248.&&&&&&&&&&&&&&&&&&&&&&&&&&&& count=43;&
249.&&&&&&&&&&&&&&&&&&&&&&&&&&&&& new MasgDlg(this,&恭喜您,挑战成功!重新游戏请按【确定】,退出游戏请按【退出】&);&
250.&&&&&&&&&&&&&&&&&&&& }&
251.&&&&&&&&&&&&&&&&&&&& else{&
252.&&&&&&&&&&&&&&&&&&&&&&&& for(int i=0;i&4;i++){&
253.&&&&&&&&&&&&&&&&&&&&&&&&&&&& myStatus[i]=(float) ((int)(ran.nextFloat()*14+1));&
254.&&&&&&&&&&&&&&&&&&&&&&&&&&&& mystatus[i]=(char) ('A'+(int)(ran.nextFloat()*4));&
255.&&&&&&&&&&&&&&&&&&&&&&&&&&&& if(myStatus[i]&10f){&
256.&&&&&&&&&&&&&&&&&&&&&&&&&&&& different[i]=myStatus[i]-10f;&
257.&&&&&&&&&&&&&&&&&&&&&&&&&&&& myStatus[i]-=different[i];&
258.&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&
259.&&&&&&&&&&&&&&&&&&&&&&&&&&&& else
260.&&&&&&&&&&&&&&&&&&&&&&&&&&&&& different[i]=0f;&
261.&&&&&&&&&&&&&&&&&&&&&&&&&&&& if(i==3&&!c.check(myStatus))&
262.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& i=2;&&&&&&&&&&&&&&&&&&&&&&&&&
263.&&&&&&&&&&&&&&&&&&&&&&&&& }&&&
264.&&&&&&&&&&&&&&&&&&&&&&&& for(int i=0;i&4;i++)&
265.&&&&&&&&&&&&&&&&&&&&&&&&&&&& myStatus[i]+=different[i];&
266.&&&&&&&&&&&&&&&&&&&&&&&& NewPanel(myStatus,mystatus);&
267.&&&&&&&&&&&&&&&&&&&&&&&& for(int i=0;i&4;i++){&
268.&&&&&&&&&&&&&&&&&&&&&&&&&& myStatus[i]-=different[i];&
269.&&&&&&&&&&&&&&&&&&&&&&&&&& if(different[i]==4)&
270.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& addscore=&
271.&&&&&&&&&&&&&&&&&&&&&&&& }&
272.&&&&&&&&&&&&&&&&&&&& }&
273.&&&&&&&&&&&&&&&& }&
274.&&&&&&&&&&&& }catch(Exception e1){&
275.&&&&&&&&&&&&&& e1.printStackTrace();&&
276.&&&&&&&&&&&& }&
277.&&&&&&&& }&
278.&&&& }&
280.&&&&&&
281.&&&&&&
282.&&&&&&
283.&&&&&&
284.&&&& private float calculateString(String str) {&
285.&&&& // 判断玩家输入的表达式的合法性&&&&&&&&&&&&&&&&
286.&&&&&&&&&&&&&&&&&&&&&&
287.&&&&&&&&&&&&&&&&&&&& int LBracketNum=0;//记录左括号个数&
288.&&&&&&&&&&&&&&&&&&&& int RBracketNum=0;//记录右括号个数&
289.&&&&&&&&&&&&&&&&&&&& int LBracketPla = 0;//记录左括号位置和&&&&
290.&&&&&&&&&&&&&&&&&&&& int RBracketPla = 0;//记录右括号位置和&&
291.&&&&&&&&&&&&&&&&&&&& int []LeftBracket=new int[10];//存放左括号的位置&
292.&&&&&&&&&&&&&&&&&&&& int []RightBracket=new int[10];//存放左括号的位置&
293.&&&&&&&&&&&&&&&&&&&& String tempStr,myString=&&;//临时字符,数字字符&
294.&&&&&&&&&&&&&&&&&&&& int numberNo=0,operatorNo=0;//数字个数,运算符个数&
295.&&&&&&&&&&&&&&&&&&&& String[]operators=new String[4];//保存运算符&
296.&&&&&&&&&&&&&&&&&&&& for(int i=0;i&4;i++){&
297.&&&&&&&&&&&&&&&&&&&&&&&& operators[i]=&&;//运算符数组初始化&
298.&&&&&&&&&&&&&&&&&&&& }&
299.&&&&&&&&&&&&&&&& for(int i=0;i&str.length();i++){&
300.&&&&&&&&&&&&&&&&&&&& tempStr=str.substring(i,i+1);//对玩家输入的字符串逐个检验&
301.&&&&&&&&&&&&&&&&&&&& if(isNumber(tempStr)){//判断是否数字&
302.&&&&&&&&&&&&&&&&&&&&&&&& myString+=tempS&
303.&&&&&&&&&&&&&&&&&&&&&&&&&&
304.&&&&&&&&&&&&&&&&&&&& }else if(isOperator(tempStr)){//判断是否运算符&
305.&&&&&&&&&&&&&&&&&&&&&&&& if(numberNo&=4||operatorNo&=3)&
306.&&&&&&&&&&&&&&&&&&&&&&&&&&&& return -1f;&
307.&&&&&&&&&&&&&&&&&&&&&&&& try{&
308.&&&&&&&&&&&&&&&&&&&&&&&&&&&& numbers[numberNo]=(float) Integer.parseInt(myString);//对输入的字符串中的数字,转换成浮点型&
309.&&&&&&&&&&&&&&&&&&&&&&&& }catch(Exception e){&&&&&&&&&&&&&&&&&&&&&
310.&&&&&&&&&&&&&&&&&&&&&&&& }&
311.&&&&&&&&&&&&&&&&&&&&&&&& myString=&&;&
312.&&&&&&&&&&&&&&&&&&&&&&&& numberNo++;//记录数字的个数&
313.&&&&&&&&&&&&&&&&&&&&&&&& operators[operatorNo]=tempS&
314.&&&&&&&&&&&&&&&&&&&&&&&& operatorNo++;//记录运算符的个数&
315.&&&&&&&&&&&&&&&&&&&&&&&& }else if(isBracket(tempStr)){//判断是否括号&
316.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //Do Nothing,跳出本次循环&
317.&&&&&&&&&&&&&&&&&&&&&&&& }&
318.&&&&&&&&&&&&&&&&&&&&&& else&&
319.&&&&&&&&&&&&&&&&&&&&&&&&&& return -1f;&&&&&&&&&&&&&&&&
320.&&&&&&&&&&&&&&&& }&
321.&&&&&&&&&&&&&&&&& if(myString.length()!=0&&numberNo==3){&
322.&&&&&&&&&&&&&&&&&&&&&&& try{&
323.&&&&&&&&&&&&&&&&&&&&&&&&&&& numbers[numberNo]=Float.parseFloat(myString);&
324.&&&&&&&&&&&&&&&&&&&&&&& }catch(Exception e){&&
325.&&&&&&&&&&&&&&&&&&&&&&&&&&& return -1f;&
326.&&&&&&&&&&&&&&&&&&&&&&& }&
327.&&&&&&&&&&&&&&&&& }&&&
328.&&&&&&&&&&
329.&&&&&&&&&&&&&&&& numberNo=0;operatorNo=0;myString=&&;&
330.&&&&&&&&&&&&&&&& for(int i=0;i&str.length();i++){&
331.&&&&&&&&&&&&&&&&&&&& tempStr=str.substring(i,i+1);&
332.&&&&&&&&&&&&&&&&&&&&&&
333.&&&&&&&&&&&&&&&&&&&& if(isNumber(tempStr)){&
334.&&&&&&&&&&&&&&&&&&&&&&&& myString+=tempS&
335.&&&&&&&&&&&&&&&&&&&&&&&&&&
336.&&&&&&&&&&&&&&&&&&&&&&&&&&&& if(numbers[numberNo]==Float.parseFloat(myString)){//判断数字是否一样,若一样则记录个数&&&&&&&&&&&&&&&&
337.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& numberNo++;&
338.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
339.&&&&&&&&&&&&&&&&&&&&&&&& }&
340.&&&&&&&&&&&&&&&&&&&&&&&&&
341.&&&&&&&&&&&&&&&&&&&& }&
342.&&&&&&&&&&&&&&&&&&&& else if(isOperator(tempStr)){&
343.&&&&&&&&&&&&&&&&&&&&&&&& operatorNo++;&
344.&&&&&&&&&&&&&&&&&&&&&&&& myString=&&;&
345.&&&&&&&&&&&&&&&&&&&&&&&&&
346.&&&&&&&&&&&&&&&&&&&& }&
347.&&&&&&&&&&&&&&&&&& else if(isBracket(tempStr)){&
348.&&&&&&&&&&&&&&&&&&&&&&& myString=&&;&
349.&&&&&&&&&&&&&&&&&&&&&&&&
350.&&&&&&&&&&&&&&&&&&&&& if(tempStr.equals(&(&)){//记录左括号个数&
351.&&&&&&&&&&&&&&&&&&&& LBracketNum ++;&
352.&&&&&&&&&&&&&&&&&&&&&&
353.&&&&&&&&&&&&&&&&&&&& LeftBracket[LBracketNum-1]=numberNo+operatorNo+1;//记录每个左括号的位置&&&&&
354.&&&&&&&&&&&&&&&&&&&& LBracketPla +=numberNo+operatorNo;& //记录所有左括号的位置和&&&&
355.&&&&&&&&&&&&&&&&&&
356.&&&&&&&&&&&&&&&&&&&& }&
357.&&&&&&&&&&&&&&&&&&&& else {//用同样的方法处理右括号&
358.&&&&&&&&&&&&&&&&&&&& RBracketNum ++;&
359.&&&&&&&&&&&&&&&&&&&&&&
360.&&&&&&&&&&&&&&&&&&&& RightBracket[RBracketNum-1]=numberNo+operatorNo+1;&&
361.&&&&&&&&&&&&&&&&&&&& RBracketPla +=numberNo+operatorNo;&
362.&&&&&&&&&&&&&&&&&&&&&&
363.&&&&&&&&&&&&&&&&&&&& }&
364.&&&&&&&&&&&&&&&&&& }&&&&&&
365.&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&
366.&&&&&&&&&&&&&&&&&&
367.&&&&&&&&&&&&&&&&&&
368.&&&&&&&&&&&&&&&& if(LBracketNum==RBracketNum&&LBracketNum==0)//判断是否没有左右括号&
369.&&&&&&&&&&&&&&&& {&
370.&&&&&&&&&&&&&&&&&&&& ;//Do Nothing&
371.&&&&&&&&&&&&&&&& }&
372.&&&&&&&&&&&&&&&& else if(LBracketNum!=RBracketNum||LBracketPla&=RBracketPla){//括号使用错误(不匹配)&
373.&&&&&&&&&&&&&&&&&&&& return -1f;&
374.&&&&&&&&&&&&&&&&&& }&
375.&&&&&&&&&&&&&&&&&&
376.&&&&&&&&&&&&&&&& for(int i1=0;i1&LeftBracket.length&&LeftBracket[i1]!=0;i1++){&&&&&&&&
377.&&&&&&&&&&&&&&&&&&&&&&&
378.&&&&&&&&&&&&&&&&&&&& if(LeftBracket[i1]%2==0||LeftBracket[i1]==7){//括号使用错误(左括号位置不正确)&
379.&&&&&&&&&&&&&&&&&&&&&&&& return -1f;&
380.&&&&&&&&&&&&&&&&&&&& }&
381.&&&&&&&&&&&&&&&& }&
382.&&&&&&&&&&&&&&&& for(int i1=0;i1&RightBracket.length&&LeftBracket[i1]!=0;i1++){&
383.&&&&&&&&&&&&&&&&&&&&& if(RightBracket[i1]%2!=0||RightBracket[i1]==2){//括号使用错误(右括号位置不正确)&
384.&&&&&&&&&&&&&&&&&&&&&&&& return -1f;&
385.&&&&&&&&&&&&&&&&&&&& }&
386.&&&&&&&&&&&&&&&& }&&&&
387.&&&& if(!isRightNum())//判断用户输入的数字是否为扑克牌上的数字&
388.&&&&&&&& return -1f;&&&&&&&&&&&&&&&&&&&&&&
390.&&&& //计算用户输入的表达式的值&&&
391.&&&& else&&&&&&&&&
392.&&&&&&&& {&
393.&&&&&&&& float result=c.string_float(str);&
394.&&&&&&&&&
395.&&&&&&&&& }&
396.&&&&&&&&&
397.& }&&&
399.&&&&&&
400.&&&&&&
401.&&&&&&
402.&&&& private boolean isBracket(String str) {//判断是否为括号的方法&
403.&&&&&&&& if(str.equals(&(&)||str.equals(&)&)){&
404.&&&&&&&&&&&&&
405.&&&&&&&& }else
406.&&&&&&&&&
407.&&&& }&
408.&&&&&&
409.&&&&&&
410.&&&&&&
411.&&&&&&
412.&&&& private boolean isNumber(String str) {//判断是否为数字的方法&
413.&&&&&&&& if(str.equals(&0&)||str.equals(&1&)||str.equals(&2&)||str.equals(&3&)&
414.&&&&&&&& ||str.equals(&4&)||str.equals(&5&)||str.equals(&6&)||str.equals(&7&)&
415.&&&&&&&& ||str.equals(&8&)||str.equals(&9&)){&
416.&&&&&&&&&&&&&
417.&&&&&&&& }&
418.&&&&&&&& else&&&&&
419.&&&&&&&&&
420.&&&& }&
421.&&&&&&
422.&&&&&&
423.&&&&&&
424.&&&& private boolean isOperator(String str) {//判断是否为运算符的方法&
425.&&&&&&&& if(str.equals(&+&)||str.equals(&-&)||str.equals(&*&)||str.equals(&/&)){&
426.&&&&&&&&&&&&&
427.&&&&&&&& }&
428.&&&& else
429.&&&&&&&&&
430.&&&& }&
431.&&&&&&
432.&&&&&&&
433.&&&&&&
434.&&&&&&
435.&&&&&&
436.&&&& private boolean isRightNum(){//判断表达式的数字就是扑克牌上的数字&
437.&&&& float tempStatus[]=new float[4];&
438.&&&& for(int i=0;i&4;i++){&
439.&&&&&&&& tempStatus[i]=myStatus[i];&
440.&&&& }&
441.&&&& for(int i=0;i&4;i++){&
442.&&&&&&&& int j=0;&
443.&&&&&&&& boolean existed=&
444.&&&&&&&& while(j&4&&!existed){&
445.&&&&&&&&&&&& if(tempStatus[j]==numbers[i]){&
446.&&&&&&&&&&&&&&&& tempStatus[j]=-1f;&
447.&&&&&&&&&&&&&&&& existed=&
448.&&&&&&&&&&&& }&
449.&&&&&&&&&&&& j++;&
450.&&&&&&&& }&
451.&&&&&&&& if(!existed)&
452.&&&&&&&&&&&&&
453.&&&& }&
456.&&&&&&
458.&&&&&&
459.&&&&&&
460.&&&&&&
461.&&&& private void NewPanel(float[] a,char[] Tempb){//扑克牌面板&
462.&&&& pokerPanel.setLayout(new FlowLayout());&
463.&&&&& int []Tempa=new int[4];&&&&&
464.&&&& for(int i=0;i&4;i++){&&&&&&&&&&&&&&&
465.&&&&&&&& Tempa[i]=(int)a[i];&
466.&&&& System.out.print(Tempa[i]+&&+Tempb[i]+& &);&
467.&&&& }&
468.&&&& System.out.println();&
469.&&&&&&
470.&&&& //装载图片&
471.&&&& URL url1=getClass().getResource(Tempa[0]+&&+Tempb[0]+&.jpg&);&&&&
472.&&&& URL url2=getClass().getResource(Tempa[1]+&&+Tempb[1]+&.jpg&);&
473.&&&& URL url3=getClass().getResource(Tempa[2]+&&+Tempb[2]+&.jpg&);&
474.&&&& URL url4=getClass().getResource(Tempa[3]+&&+Tempb[3]+&.jpg&);&
475.&&&&&&
476.&&&& poker1.setIcon(new ImageIcon(url1));&
477.&&&& poker2.setIcon(new ImageIcon(url2));&
478.&&&& poker3.setIcon(new ImageIcon(url3));&
479.&&&& poker4.setIcon(new ImageIcon(url4));&
480.&&&&&&
481.&&&& poker1.setBackground(new Color(18,152,57));&
482.&&&& poker2.setBackground(new Color(18,152,57));&
483.&&&& poker3.setBackground(new Color(18,152,57));&
484.&&&& poker4.setBackground(new Color(18,152,57));&
485.&&&&&&
486.&&&& frame.setSize(650, 480);&
487.&&&& pokerPanel.setBackground(new Color(18,132,57));&
488.&&&& Buttompnl.setBackground(new Color(18,132,57));&
489.&&&&&&
490.&&&& frame.setLocation((screen.width-frame.getSize().width)/2, (screen.height-frame.getSize().height)/2);&
491.&&&& frame.setVisible(true);&
492.&&&& frame.setResizable(false);&
493.&&&& frame.addWindowListener(new WindowAdapter(){//设置窗口关闭监听器&
494.&&&&&&&&&& public void windowClosing(WindowEvent e){&
495.&&&&&&&&&&& System.exit(0);&
496.&&&&&&&&&&&& }&
497.&&&&&& });&
498.&& }&&
499.&&&&&&
501.&&&&&&
502.&&&&&&
503.&&&& public static void main(String[] args){//程序入口,主函数调用&
504.&&&&&&&& Calculate24 Start=new Calculate24();//实例化为对象&
505.&&&&&&&& float []a=new float[4];&
506.&&&&&&&& char []b=new char [4];&
507.&&&&&&&& for(int i=0;i&4;i++)&
508.&&&&&&&& b[i]='A';&
509.&&&&&&&& Start.NewPanel(a,b);&
510.&&&& }&
Java代码片段:
1.&//import java.util.R&
4.& * 检查类,【本游戏的核心算法】&
5.& * ①用于检查随机生成的4个1~10的随机数能否通过运算得到24,&
6.& * 如果不能则再次产生4个随机数,&
7.& * 直到产生能够运算得到24的随机数为止&
8.& * ②检查用户输入的表达式是否合法或运算结果是否正确&
10.&public class Check {&&
11.&&&&& protected String outputs=new String();&
12.&&&& /*&
13.&&&&& * 返回随机数全排列的方法,&
14.&&&&& * 对产生的四个随机数进行全排列,&
15.&&&&& * 共有4*3*2*1=24种情况,&
16.&&&&& * 考虑到运行效率,&
17.&&&&& * 直接将各种情况罗列出来,&
18.&&&&& * 没有用递归全排列的方法,&
19.&&&&& * 该方法通过形参i控制选取24种排列的第几种,&
20.&&&&& * 返回四个数的一维浮点型数组&
21.&&&&& */
22.&&&& private float[] number(float [] a,int i){&
23.&&&&&&&&& final float[] Array = new float[4];&
24.&&&&&&&&&&&& switch(i){&
25.&&&&&&&&&&&& case 0 : Array[0]=a[0];Array[1]=a[1];Array[2]=a[2];Array[3]=a[3];&
26.&&&&&&&&&&&& case 1 : Array[0]=a[0];Array[1]=a[1];Array[2]=a[3];Array[3]=a[2];&
27.&&&&&&&&&&&& case 2 : Array[0]=a[0];Array[1]=a[2];Array[2]=a[1];Array[3]=a[3];&
28.&&&&&&&&&&&& case 3 : Array[0]=a[0];Array[1]=a[2];Array[2]=a[3];Array[3]=a[1];&
29.&&&&&&&&&&&& case 4 : Array[0]=a[0];Array[1]=a[3];Array[2]=a[2];Array[3]=a[1];&
30.&&&&&&&&&&&& case 5 : Array[0]=a[0];Array[1]=a[3];Array[2]=a[1];Array[3]=a[2];&
31.&&&&&&&&&&&& case 6 : Array[0]=a[1];Array[1]=a[0];Array[2]=a[2];Array[3]=a[3];&
32.&&&&&&&&&&&& case 7 : Array[0]=a[1];Array[1]=a[0];Array[2]=a[3];Array[3]=a[2];&
33.&&&&&&&&&&&& case 8 : Array[0]=a[1];Array[1]=a[2];Array[2]=a[0];Array[3]=a[3];&
34.&&&&&&&&&&&& case 9 : Array[0]=a[1];Array[1]=a[2];Array[2]=a[3];Array[3]=a[0];&
35.&&&&&&&&&&&& case 10: Array[0]=a[1];Array[1]=a[3];Array[2]=a[2];Array[3]=a[0];&
36.&&&&&&&&&&&& case 11: Array[0]=a[1];Array[1]=a[3];Array[2]=a[0];Array[3]=a[2];&
37.&&&&&&&&&&&& case 12: Array[0]=a[2];Array[1]=a[1];Array[2]=a[0];Array[3]=a[3];&
38.&&&&&&&&&&&& case 13: Array[0]=a[2];Array[1]=a[1];Array[2]=a[3];Array[3]=a[0];&
39.&&&&&&&&&&&& case 14: Array[0]=a[2];Array[1]=a[0];Array[2]=a[1];Array[3]=a[3];&
40.&&&&&&&&&&&& case 15: Array[0]=a[2];Array[1]=a[0];Array[2]=a[3];Array[3]=a[1];&
41.&&&&&&&&&&&& case 16: Array[0]=a[2];Array[1]=a[3];Array[2]=a[0];Array[3]=a[1];&
42.&&&&&&&&&&&& case 17: Array[0]=a[2];Array[1]=a[3];Array[2]=a[1];Array[3]=a[0];&
43.&&&&&&&&&&&& case 18: Array[0]=a[3];Array[1]=a[1];Array[2]=a[2];Array[3]=a[0];&
44.&&&&&&&&&&&& case 19: Array[0]=a[3];Array[1]=a[1];Array[2]=a[0];Array[3]=a[2];&
45.&&&&&&&&&&&& case 20: Array[0]=a[3];Array[1]=a[2];Array[2]=a[1];Array[3]=a[0];&
46.&&&&&&&&&&&& case 21: Array[0]=a[3];Array[1]=a[2];Array[2]=a[0];Array[3]=a[1];&
47.&&&&&&&&&&&& case 22: Array[0]=a[3];Array[1]=a[0];Array[2]=a[2];Array[3]=a[1];&
48.&&&&&&&&&&&& case 23: Array[0]=a[3];Array[1]=a[0];Array[2]=a[1];Array[3]=a[2];&
49.&&&&&&&&&&&& }&
50.&&&&&&&&& return& A&
51.&&&&& }&
56.&&&& /*&
57.&&&&& * 返回运算符排列的方法,&
58.&&&&& * 四个数进行运算时需要三个运算符,&
59.&&&&& * 三个运算符的所有可能的排列是4^3=64种,&
60.&&&&& * 该方法直接返回64种运算符,&
61.&&&&& * 保存在二维字符型数组&&
62.&&&&& */
63.&&&& private char [][]Calculate(){&
64.&&&&&&&&& final char [][] Char=new char [64][3];//返回的运算符数组&
65.&&&&&&&& final int [][] ar=new int [64][3];//控制返回三个运算符&
66.&&&&&&&& int t=0;&
67.&&&&&&&& stop:for(int i=0;i&4;i++){&
68.&&&&&&&&&&&&&&& for(int j=0;j&4;j++){&
69.&&&&&&&&&&&&&&&&& for(int k=0;k&4;k++){&&&
70.&&&&&&&&&&&&&&&&&&&& ar[t][0]=i;&
71.&&&&&&&&&&&&&&&&&&&& ar[t][1]=j;&
72.&&&&&&&&&&&&&&&&&&&& ar[t][2]=k;&&&&&&&&&&
73.&&&&&&&&&&&&&&&&&&&& for(int l=0;l&3;l++){//i,j,k的范围都是0~3,通过switch,将0~3分别映射为+,&,*,/&
74.&&&&&&&&&&&&&&&&&&&&&&&& switch(ar[t][l]){&
75.&&&&&&&&&&&&&&&&&&&&&&&& case 0:Char[t][l]='+';&
76.&&&&&&&&&&&&&&&&&&&&&&&& case 1:Char[t][l]='-';&
77.&&&&&&&&&&&&&&&&&&&&&&&& case 2:Char[t][l]='*';&
78.&&&&&&&&&&&&&&&&&&&&&&&& case 3:Char[t][l]='/';&
79.&&&&&&&&&&&&&&&&&&&&&&&& }&
80.&&&&&&&&&&&&&&&&&&&& }&
81.&&&&&&&&&&&&&&&&&&&& t++;&
82.&&&&&&&&&&&&&&&&&&&& if(t==64)&
83.&&&&&&&&&&&&&&&&&&&&&&&& //通过t的自增控制循环的结束&&&&&&
84.&&&&&&&&&&&&&&&& }&
85.&&&&&&&&&&&& }&
86.&&&&&&&& }&&&&
87.&&&&&&&& return C&
88.&&&& }&&&&
94.&&&& /*&
95.&&&&& * 返回计算结果的方法,&
96.&&&&& * 对两个随机数进行运算&
97.&&&&& */
98.&&&& private float Run(float a,float b,char c){&
99.&&&&&&&& float sum=0f;&
100.&&&&&&&& switch(c){&
101.&&&&&&&& case '+': sum=a+b; //将'+'字符转换成加法运算&
102.&&&&&&&& case '-': sum=a-b; //将'-'字符转换成减法运算&
103.&&&&&&&& case '*': sum=a*b; //将'*'字符转换成乘法运算&
104.&&&&&&&& case '/': sum=a/b; //将'/'字符转换成除法运算&
105.&&&&&&&& }&
106.&&&&&&&&&&&&&&
107.&&&& }&
109.&&&&&&
110.&&&&&&
111.&&&&&&
112.&&&&&&
113.&&&&&&
114.&&&& /*&
115.&&&&& * check方法&
116.&&&&& * 如果可以运算得到24,&
117.&&&&& * 返回true,&
118.&&&&& * 否则返回false&
119.&&&&& * 为了节省运行时间,&
120.&&&&& * 运算时,&
121.&&&&& * 只要某一次运算结果是24就直接返回true&
122.&&&&& * 只有产生的随机数不能运算得到24时才会运行所有情况&
123.&&&&& */
124.&&&&& protected& boolean check(float[] myStatus){&
125.&&&&&&&&&&
126.&&&&&&&& float num[]=new float [4];&
127.&&&&&&&& char [][] allcha=new char [64][3];&
128.&&&&&&&&& allcha=Calculate();&
129.&&&&&&&& for(int i=0;i&24;i++){&
130.&&&&&&&&&&&& for(int j=0;j&64;j++){&
131.&&&&&&&&&&&&&&&&&&&&&
132.&&&&&&&&&&&&&&&&&&& num=number(myStatus,i);&
133.&&&&&&&&&&&&&&&&&&&&&
134.&&&&&&&&&&&&&&&&&&& /*&&
135.&&&&&&&&&&&&&&&&&&&& * 注释解析:&
136.&&&&&&&&&&&&&&&&&&&& * ABCD表示四个参与运算的随机数&&&&
137.&&&&&&&&&&&&&&&&&&&& * ①②③表示运算顺序&&&&&
138.&&&&&&&&&&&&&&&&&&&& */
139.&&&&&&&&&&&&&&&&&&& x=Run(Run(Run(num[0],num[1],allcha[j][0]),num[2],allcha[j][1]),num[3],allcha[j][2]);&
140.&&&&&&&&&&&&&&&&&&& if(x==24.0f){&
141.&&&&&&&&&&&&&&&&&&&&&&& //System.out.println(&((&+num[0]+allcha[j][0]+num[1]+&)&+allcha[j][1]+num[2]+&)&+allcha[j][2]+num[3]);&
142.&&&&&&&&&&&&&&&&&&&&&&& outputs=&((&+(int)num[0]+allcha[j][0]+(int)num[1]+&)&+allcha[j][1]+(int)num[2]+&)&+allcha[j][2]+(int)num[3];&
143.&&&&&&&&&&&&&&&&&&&&&&& System.out.println(outputs);&
144.&&&&&&&&&&&&&&&&&&&&&&&&
145.&&&&&&&&&&&&&&&&&&&&&&& }&
146.&&&&&&&&&&&&&&&&&&&&&& // 以上运算类型为:((A①B)②C)③D&
147.&&&&&&&&&&&&&&&&&&& x=Run(Run(num[0],num[1],allcha[j][0]),Run(num[2],num[3],allcha[j][2]),allcha[j][1]);&
148.&&&&&&&&&&&&&&&&&&& if(x==24.0f){&&
149.&&&&&&&&&&&&&&&&&&&&&&& //System.out.println(&(&+num[0]+allcha[j][0]+num[1]+&)&+allcha[j][1]+&(&+num[2]+allcha[j][2]+num[3]+&)&);&
150.&&&&&&&&&&&&&&&&&&&&&&& outputs=&(&+(int)num[0]+allcha[j][0]+(int)num[1]+&)&+allcha[j][1]+&(&+(int)num[2]+allcha[j][2]+(int)num[3]+&)&;&
151.&&&&&&&&&&&&&&&&&&&&&&& System.out.println(outputs);&
152.&&&&&&&&&&&&&&&&&&&&&&&&
153.&&&&&&&&&&&&&&&&&&&&&&& }&
154.&&&&&&&&&&&&&&&&&&&&&& //以上运算类型为:(A①B)②(C①D)&
155.&&&&&&&&&&&&&&&&&&& x=Run(Run(num[0],Run(num[1],num[2],allcha[j][1]),allcha[j][0]),num[3],allcha[j][2]);&
156.&&&&&&&&&&&&&&&&&&& if(x==24.0f){&
157.&&&&&&&&&&&&&&&&&&&&&&& //System.out.println(&(&+num[0]+allcha[j][0]+&(&+num[1]+allcha[j][1]+num[2]+&))&+allcha[j][2]+num[3]);&
158.&&&&&&&&&&&&&&&&&&&&&&& outputs=&(&+(int)num[0]+allcha[j][0]+&(&+(int)num[1]+allcha[j][1]+(int)num[2]+&))&+allcha[j][2]+(int)num[3];&
159.&&&&&&&&&&&&&&&&&&&&&&& System.out.println(outputs);&
160.&&&&&&&&&&&&&&&&&&&&&&&&
161.&&&&&&&&&&&&&&&&&&&&&&& }&
162.&&&&&&&&&&&&&&&&&&&&&& //以上运算类型为:(A②(B①C))③D&
163.&&&&&&&&&&&&&&&&&&& x=Run(num[0],Run(Run(num[1],num[2],allcha[j][1]),num[3],allcha[j][2]),allcha[j][0]);&
164.&&&&&&&&&&&&&&&&&&& if(x==24.0f){&
165.&&&&&&&&&&&&&&&&&&&&&&& //System.out.println(num[0]+&&+allcha[j][0]+&((&+num[1]+allcha[j][1]+num[2]+&)&+allcha[j][2]+num[3]+&)&);&
166.&&&&&&&&&&&&&&&&&&&&&&& outputs=(int)num[0]+&&+allcha[j][0]+&((&+(int)num[1]+allcha[j][1]+(int)num[2]+&)&+allcha[j][2]+(int)num[3]+&)&;&
167.&&&&&&&&&&&&&&&&&&&&&&& System.out.println(outputs);&
168.&&&&&&&&&&&&&&&&&&&&&&&&
169.&&&&&&&&&&&&&&&&&&& }&
170.&&&&&&&&&&&&&&&&&&&&& //以上运算类型为:A③((B①C)②D)&
171.&&&&&&&&&&&&&&&&&&& x=Run(num[0],Run(num[1],Run(num[2],num[3],allcha[j][2]),allcha[j][1]),allcha[j][0]);&
172.&&&&&&&&&&&&&&&&&&& if(x==24.0f){&&
173.&&&&&&&&&&&&&&&&&&&&&&& //System.out.println(num[0]+&&+allcha[j][0]+&(&+num[1]+allcha[j][1]+&(&+num[2]+allcha[j][2]+num[3]+&))&);&
174.&&&&&&&&&&&&&&&&&&&&&&& outputs=(int)num[0]+&&+allcha[j][0]+&(&+(int)num[1]+allcha[j][1]+&(&+(int)num[2]+allcha[j][2]+(int)num[3]+&))&;&
175.&&&&&&&&&&&&&&&&&&&&&&& System.out.println(outputs);&
176.&&&&&&&&&&&&&&&&&&&&&&&&
177.&&&&&&&&&&&&&&&&&&&&&&& }&
178.&&&&&&&&&&&&&&&&&&&&& //以上运算类型为:A③(B②(C①D))&
179.&&&&&&&&&&& }&
180.&&&&&&&& }&
181.&&&&&&&&&&&&&&&&&&&&&&&&&&&&
182.&&&& }&&&
183.&&&&&&
184.&&&&&&
185.&&&&&&
187.&&&&&&
188.&&&&& /*&
189.&&&&& * 把字符串的数学表达式计算出结果&
190.&&&&& */&&&&&
191.&&& protected float string_float(String s0){&
192.&&&&&&&& char s[]=new char[s0.length()];&
193.&&&&&&&& float sum=0;//计算结果&
194.&&&&&&&& float num[]={-1,-1,-1,-1};& //记录数学表达式中的数&&&&&
195.&&&&&&&& int calculate_location[]={-1,-1,-1};&
196.&&&&&&&& char calculate[]={'a','a','a'};//记录数学表达式中的运算符&
197.&&&&&&&& int calculate_priority[]={3,2,1};//设置优先级&&&&&&&&&
198.&&&&&&&&&
199.&&&&&&&& for(int i=0;i&s.i++)&
200.&&&&&&&&&&&& s[i]=s0.charAt(i);&
201.&&&&&&&& for(int i=0,j=0,l=0;i&s.i++){//分析字符串&
202.&&&&&&&&&&&& if(s[i]&='0'&&s[i]&='9')&
203.&&&&&&&&&&&& {//得到数学表达式中的数&
204.&&&&&&&&&&&&&&&& num[j]=s[i]-48;&&&&&&&&&&&&&&
205.&&&&&&&&&&&&&&&& if(i+1&s.length)&
206.&&&&&&&&&&&&&&&&&&&& if(s[i+1]&='0'&&s[i+1]&='9')&
207.&&&&&&&&&&&&&&&&&&&& {&
208.&&&&&&&&&&&&&&&&&&&&&&&& num[j]=num[j]*10+s[i+1]-48;&
209.&&&&&&&&&&&&&&&&&&&&&&&& i++;&
210.&&&&&&&&&&&&&&&&&&&& }&
211.&&&&&&&&&&&&&&&& j++;&
212.&&&&&&&&&&&&&&&&&
213.&&&&&&&&&&&& }&&&&&&&&&&&&
214.&&&&&&&&&&&& if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')//得到表达式中的运算符&&&&&&&&&&&&&&&
215.&&&&&&&&&&&&&&&& if(calculate_location[l]==-1)&
216.&&&&&&&&&&&&&&&& {&
217.&&&&&&&&&&&&&&&&&&&& calculate_location[l]=i;&
218.&&&&&&&&&&&&&&&&&&&& calculate[l]=s[i];&
219.&&&&&&&&&&&&&&&&&&&& l++;&
220.&&&&&&&&&&&&&&&& }&&&&&&&&
221.&&&&&&&& }&
222.&&&&&&&& for(int i=0,i0=0,j=0;i&s.i++)&
223.&&&&&&&& {//分析表达式的运算优先级&
224.&&&&&&&&&&&& if(s[i]==')')&&&&&&&&&&&&
225.&&&&&&&&&&&& {// 先算括号里的表达式&
226.&&&&&&&&&&&&&&&& for(i0=i;s[i0]!='(';i0--)&&&&&&&&&&&&&&&&
227.&&&&&&&&&&&&&&&&&&&& if(s[i0]=='+'||s[i0]=='-'||s[i0]=='*'||s[i0]=='/')&&&&&&&&&&&&&&&&&&&
228.&&&&&&&&&&&&&&&&&&&&&&&& for(j=0;j&3;j++)&
229.&&&&&&&&&&&&&&&&&&&&&&&&&&&& if(calculate_location[j]==i0)&
230.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& calculate_priority[j]+=8;&
231.&&&&&&&&&&&&&&&& s[i0]='s';&
232.&&&&&&&&&&&& }&&&&&&&&
233.&&&&&&&&&&&& if(s[i]=='*'||s[i]=='/')//再算乘除&&&
234.&&&&&&&&&&&&&&&& for(j=0;j&3;j++)&
235.&&&&&&&&&&&&&&&&&&&& if(calculate_location[j]==i)&
236.&&&&&&&&&&&&&&&&&&&&&&&& calculate_priority[j]+=4;&&&&&&&&&&&&
237.&&&&&&&& }&&&&&&&&
238.&&&&&&&&&&
239.&&&&&&&& /*&
240.&&&&&&&&& * 此处的if是把刚才分析的运算优先级用一个int的变量abc记录下来,如123则表示第三个运算符&
241.&&&&&&&&& * 运算级最高,其实是第二个,最后是第一个&
242.&&&&&&&&& */
243.&&&&&&&& if(calculate_priority[0]&calculate_priority[1])&
244.&&&&&&&& {&
245.&&&&&&&&&&&& if(calculate_priority[0]&calculate_priority[2])&
246.&&&&&&&&&&&&&&&& calculate_priority[0]=-1;&
247.&&&&&&&&&&&& else
248.&&&&&&&&&&&&&&&& calculate_priority[2]=-1;&
249.&&&&&&&& }&
250.&&&&&&&& else
251.&&&&&&&& {&
252.&&&&&&&&&&&& if(calculate_priority[1]&calculate_priority[2])&
253.&&&&&&&&&&&&&&&& calculate_priority[1]=-1;&
254.&&&&&&&&&&&& else
255.&&&&&&&&&&&&&&&& calculate_priority[2]=-1;&
256.&&&&&&&& }&
257.&&&&&&&& if(calculate_priority[0]&0)&
258.&&&&&&&& {&
259.&&&&&&&&&&&& if(calculate_priority[1]&calculate_priority[2])&
260.&&&&&&&&&&&& {&
261.&&&&&&&&&&&&&&&& calculate_priority[1]=-2;&
262.&&&&&&&&&&&&&&&& calculate_priority[2]=-3;&
263.&&&&&&&&&&&& }&
264.&&&&&&&&&&&& else
265.&&&&&&&&&&&& {&
266.&&&&&&&&&&&&&&&& calculate_priority[1]=-3;&
267.&&&&&&&&&&&&&&&& calculate_priority[2]=-2;&
268.&&&&&&&&&&&& }&
269.&&&&&&&& }&
270.&&&&&&&& else
271.&&&&&&&& {&
272.&&&&&&&&&&&& if(calculate_priority[1]&0)&
273.&&&&&&&&&&&& {&
274.&&&&&&&&&&&&&&&& if(calculate_priority[0]&calculate_priority[2])&
275.&&&&&&&&&&&&&&&& {&
276.&&&&&&&&&&&&&&&&&&&& calculate_priority[0]=-2;&
277.&&&&&&&&&&&&&&&&&&&& calculate_priority[2]=-3;&
278.&&&&&&&&&&&&&&&& }&
279.&&&&&&&&&&&&&&&& else
280.&&&&&&&&&&&&&&&& {&
281.&&&&&&&&&&&&&&&&&&&& calculate_priority[0]=-3;&
282.&&&&&&&&&&&&&&&&&&&& calculate_priority[2]=-2;&
283.&&&&&&&&&&&&&&&& }&
284.&&&&&&&&&&&& }&
285.&&&&&&&&&&&& else
286.&&&&&&&&&&&& {&
287.&&&&&&&&&&&&&&&& if(calculate_priority[0]&calculate_priority[1])&
288.&&&&&&&&&&&&&&&& {&
289.&&&&&&&&&&&&&&&&&&&& calculate_priority[0]=-2;&
290.&&&&&&&&&&&&&&&&&&&& calculate_priority[1]=-3;&
291.&&&&&&&&&&&&&&&& }&
292.&&&&&&&&&&&&&&&& else
293.&&&&&&&&&&&&&&&& {&
294.&&&&&&&&&&&&&&&&&&&& calculate_priority[0]=-3;&
295.&&&&&&&&&&&&&&&&&&&& calculate_priority[1]=-2;&
296.&&&&&&&&&&&&&&&& }&
297.&&&&&&&&&&&& }&
298.&&&&&&&& }&&&&&&&&
299.&&&&&&&& abc=calculate_priority[0]*100+calculate_priority[1]*10+calculate_priority[2];&
300.&&&&&&&& abc=-&&&&&&&&
301.&&&&&&&&&&
302.&&&&&&&& //根据刚才分析的运算级,计算出结果,保存在sum里面&
303.&&&&&&&& switch(abc){&
304.&&&&&&&& case 123:sum=Run(Run(Run(num[0],num[1],calculate[0]),num[2],calculate[1]),num[3],calculate[2]);&
305.&&&&&&&& case 132:sum=Run(Run(num[0],num[1],calculate[0]),Run(num[2],num[3],calculate[2]),calculate[1]);&
306.&&&&&&&& case 213:sum=Run(Run(num[0],Run(num[1],num[2],calculate[1]),calculate[0]),num[3],calculate[2]);&
307.&&&&&&&& case 231:sum=Run(Run(num[0],num[1],calculate[0]),Run(num[2],num[3],calculate[2]),calculate[1]);&
308.&&&&&&&& case 312:sum=Run(num[0],Run(Run(num[1],num[2],calculate[1]),num[3],calculate[2]),calculate[0]);&
309.&&&&&&&& case 321:sum=Run(num[0],Run(num[1],Run(num[2],num[3],calculate[2]),calculate[1]),calculate[0]);&
310.&&&&&&&& }&
311.&&&&&&&&&&
312.&&&&&&&&//返回结果&
313.&&&& }&
314.&&&&&&
315.&&&&&&
316.&&&&&&
320.&& //测试区&
321.&&&& /* public static void main(String[]args){&
322.&&&&&&&& Check c=new Check();&
323.&&&&&&&& Float [] test=new Float [4];&
324.&&&&&&&& Random ran=new Random();&
325.&&&&&&&& for(int i=0;i&4;i++)&
326.&&&&&&&&&&&& test[i]=(float) ((int)(ran.nextFloat()*10+1));&
327.&&&&&&&& //c.check(test);&
328.&&&&&&&& System.out.println(test[0]+&& &+test[1]+&& &+test[2]+&& &+test[3]+&& &+c.check(test));&
329.&&&&&&&& test[0]=5.0f;&
330.&&&&&&&& test[1]=10.0f;&
331.&&&&&&&& test[2]=2.0f;&
332.&&&&&&&& test[3]=10.0f;&
333.&&&&&&&& //c.check(test);&
334.&&&&&&&& System.out.println(test[0]+&& &+test[1]+&& &+test[2]+&& &+test[3]+&& &+c.check(test));&
335.&&&&&&&&&&
336.&&&& }*/
Java代码片段:
1.&import java.awt.BorderL&
2.&import java.awt.event.ActionE&
3.&import java.awt.event.ActionL&
5.&import javax.swing.JB&
6.&import javax.swing.JF&
7.&import javax.swing.JL&
8.&import javax.swing.JP&
11.&@SuppressWarnings(&serial&)&
12.&public class MasgDlg extends JFrame implements ActionListener {&
13.&&&& Calculate24 bp=new Calculate24();&
14.&&&&& protected MasgDlg( Calculate24 btp,String strMsg){&
15.&&&&&&&& this.setTitle(&提示窗口&);&
16.&&&&&&&& bp=&
17.&&&&&&& JPanel textp=new JPanel();&
18.&&&&&&& JPanel btnp=new JPanel();&
19.&&&&&&& JLabel label=new JLabel();&
20.&&&&&&& this.setLayout(new BorderLayout());&
21.&&&&&&& this.add(textp,BorderLayout.NORTH);&
22.&&&&&&& this.add(btnp,BorderLayout.SOUTH);&
23.&&&&&& textp.add(label,BorderLayout.CENTER);&
24.&&&&&& label.setText(strMsg);&
25.&&&&&& this.setSize(580,100);&
26.&&&&&& this.setLocation(400,300);&
27.&&&&&& JButton btnOk=new JButton(&确定&);&
28.&&&&&& JButton btnquit=new JButton(&退出&);&
29.&&&&&& btnOk.setActionCommand(&restart&);&
30.&&&&&& btnOk.addActionListener(this);&
31.&&&&&& btnquit.setActionCommand(&quit&);&
32.&&&&&& btnquit.addActionListener(this);&
33.&&&&&& btnp.add(btnOk);&
34.&&&&&& btnp.add(btnquit);&
35.&&&&&& this.setVisible(true);//显示对话框&
36.&&&&&& this.setAlwaysOnTop(true);&
37.&&&&&& bp.btnStart.setEnabled(false);&
43.&&&& public void actionPerformed(ActionEvent e) {&
44.&&&&&&&& if(e.getActionCommand().equals(&restart&)){&
45.&&&&&&&&&& this.dispose();&
46.&&&&&&&&&& bp.btnStart.setEnabled(true);&
47.&&&&&&&& }&
48.&&&&&&&& else if(e.getActionCommand().equals(&quit&)){&
49.&&&&&&&&&&&& System.exit(0);&
50.&&&&&&&&&&&& //隐藏对话框&
51.&&&&&&&& }&
52.&&&& }&
57.&&&& //测试区&
58.&&&& /*public static void main(String []args){&
59.&&&&&&&& new MsgDlg(&欢迎再次使用&);&
60.&&&& }*/
Java代码片段:
1.&import java.awt.BorderL&
2.&import java.awt.event.ActionE&
3.&import java.awt.event.ActionL&
5.&import javax.swing.JB&
6.&import javax.swing.JF&
7.&import javax.swing.JL&
8.&import javax.swing.JP&
10.&@SuppressWarnings(&serial&)&
11.&public class MsgDlg extends JFrame implements ActionListener {&
12.&&&& Calculate24 tempCal24;&
13.&&&&& protected MsgDlg(String strMsg,Calculate24 Cal24){&
14.&&&&&&&& //super();&
15.&&&&&&&& this.setTitle(&提示窗口&);&
16.&&&&&&& JPanel textp=new JPanel();&
17.&&&&&&& JPanel btnp=new JPanel();&
18.&&&&&&& JLabel label=new JLabel();&
19.&&&&&&& this.setLayout(new BorderLayout());&
20.&&&&&&& this.add(textp,BorderLayout.NORTH);&
21.&&&&&&& this.add(btnp,BorderLayout.SOUTH);&
22.&&&&&& textp.add(label,BorderLayout.CENTER);&
23.&&&&&& label.setText(strMsg);&
24.&&&&&& this.setSize(580,100);&
25.&&&&&& this.setLocation(400,300);&
26.&&&&&& JButton btnOk=new JButton(&确定&);&
27.&&&&&& tempCal24=Cal24;&
28.&&&&&& btnOk.addActionListener(this);&
29.&&&&&& btnp.add(btnOk);&
30.&&&&&& this.toFront();&
31.&&&&&& tempCal24.btnOk.setEnabled(false);//使确定按钮不可用&
32.&&&&&& this.setVisible(true);//显示对话框&
36.&&&& public void actionPerformed(ActionEvent e) {&
37.&&&&&&&& this.dispose();//隐藏对话框&
38.&&&&&&&& tempCal24.btnOk.setEnabled(true);//激活确定按钮&
39.&&&& }&
44.&&&& //测试区&
45.&&&& /*public static void main(String []args){&
46.&&&&&&&& new MsgDlg(&欢迎再次使用&);&
47.&&&& }*/
Java代码片段:
1.&import javax.swing.*;&
2.&import java.awt.event.*;&
6.& * 时间显示类&
9.&@SuppressWarnings(&serial&)&
10.&public class MyTimer extends JPanel&
12.&&&&&&& protected int usedTime = 0;//定义初始时间为0&
13.&&&&&&&& public T&
14.&&&&&&&& public JLabel usedTimeLabel = new JLabel(&用时:&);&
15.&&&&&&&& public JTextField timeText = new JTextField(5);&
16.&&&&&&&& protected& MyTimer()&
17.&&&&&&&& {&
18.&&&&&&&&&&&&&&&& timeText.setEditable(false);&
19.&&&&&&&&&&&&&&&& timeText.setText(&0分0秒&);&
20.&&&&&&&&&&&&&&&& setVisible(true);&
21.&&&&&&&&&&&&&&&& timer = new Timer(1000,new TimerListener());&
22.&&&&&&&& }&
23.&&&&&&&& class TimerListener implements ActionListener//时间显示监听&
24.&&&&&&&& {&&&&&&&&&&&&
25.&&&&&&&&&&&&&&&& public void actionPerformed(ActionEvent e)&
26.&&&&&&&&&&&&&&&& {&
27.&&&&&&&&&&&&&&&&&&&&&&&& usedTime++;&
28.&&&&&&&&&&&&&&&&&&&&&&&& timeText.setText(usedTime/60+&分&+usedTime%60+&秒&); //显示所用时间,分秒&&&&&&&&&&&&&&&&&&&&&&&&
29.&&&&&&&&&&&&&&&& }&
30.&&&&&&&& }&
效果图片:
&来源于51CTO
小编工资已与此赏挂钩!一赏一分钱!求打赏↓ ↓ ↓
如果你喜欢本文章,请赐赏:
已赐赏的人
我的电子书

我要回帖

更多关于 js数字滚动抽奖 的文章

 

随机推荐