基于java swing实现答题系统

2025-05-27 0 33

本文实例为大家分享了java swing实现答题系统的具体代码,供大家参考,具体内容如下

基于java swing实现答题系统

如上图所示,代码亲测可用,如下:

  1. importjava.awt.BorderLayout;
  2. importjava.awt.Color;
  3. importjava.awt.GridLayout;
  4. importjava.awt.event.ActionEvent;
  5. importjava.awt.event.ActionListener;
  6. importjava.awt.event.KeyEvent;
  7. importjava.awt.event.KeyListener;
  8. importjava.util.ArrayList;
  9. importjava.util.List;
  10. importjava.util.Random;
  11. importjavax.swing.JButton;
  12. importjavax.swing.JFrame;
  13. importjavax.swing.JLabel;
  14. importjavax.swing.JPanel;
  15. importjavax.swing.JTextField;
  16. /**
  17. *2017-01-09
  18. *@authorKoow
  19. *
  20. */
  21. publicclasssaextendsJFrameimplementsActionListener,KeyListener{
  22. privateJLabeltitle=null;
  23. privateJButtonsubmit=null;
  24. privateJPanelcenter=null;
  25. //items用来跳转
  26. privateintitem1=0;
  27. privateintitem2=1;
  28. privateintitem3=2;
  29. privateintitem4=3;
  30. privateJLabel[]FormulaLabels;//用来存放表达式的各个项
  31. privateList<String>allResult;//用来存放随机出来的结果
  32. privateJTextField[]userResults;//用来让用户输入结果
  33. privateJLabel[]judge;//用来显示图标,以显示用户输入的结果是否正确
  34. privateList<String>inputResults=null;//可以不要
  35. privateJTextFieldscoreField=null;
  36. privateinttextCount=1;//用来记录当前焦点的位置
  37. publicstaticvoidmain(String[]args){
  38. sas=newsa();
  39. }
  40. publicsa(){
  41. //TODOAuto-generatedconstructorstub
  42. inputResults=newArrayList<String>();
  43. //实例化
  44. title=newJLabel("题目很简单,认真答哦!~(每题1分,答对加1分,答错不扣分!)");
  45. submit=newJButton("提交");
  46. submit.addActionListener(this);
  47. GridLayoutlayout=newGridLayout(21,6);
  48. center=newJPanel(layout);
  49. //调用方法实例化方法
  50. initLables();
  51. initUserRestult();
  52. initJudge();
  53. //将各项填入到center面板(GridLayout)
  54. intcount=1;
  55. intformulaCount=0;
  56. intuserResultsCount=0;
  57. intjudgeCount=0;
  58. while(count<=120){
  59. //判断count%6,确定要填哪个组件
  60. if(count%6==1||count%6==2||count%6==3||count%6==4){
  61. center.add(FormulaLabels[formulaCount]);
  62. formulaCount++;
  63. }elseif(count%6==5){
  64. center.add(userResults[userResultsCount]);
  65. userResultsCount++;
  66. }elseif(count%6==0){
  67. center.add(judge[judgeCount]);
  68. judgeCount++;
  69. }
  70. count++;
  71. }
  72. center.add(newJLabel());
  73. center.add(newJLabel());
  74. center.add(newJLabel("总分:"));
  75. scoreField=newJTextField();
  76. scoreField.setEditable(false);
  77. center.add(scoreField);
  78. center.add(newJLabel());
  79. center.add(newJLabel());
  80. this.add(center,BorderLayout.CENTER);
  81. //添加组件
  82. this.add(submit,BorderLayout.SOUTH);
  83. this.add(title,BorderLayout.NORTH);
  84. //显示
  85. this.setLocation(400,10);
  86. this.setVisible(true);
  87. this.setSize(500,700);
  88. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  89. this.setTitle("简单测试系统");
  90. try{
  91. Thread.sleep(500);
  92. }catch(InterruptedExceptione){
  93. //TODOAuto-generatedcatchblock
  94. e.printStackTrace();
  95. }
  96. userResults[0].requestFocus();
  97. }
  98. /**
  99. *这个方法用来初始化算式各项的数组
  100. */
  101. privatevoidinitLables(){
  102. intsum;
  103. intfirstNumber;
  104. intsecondNumber;
  105. allResult=newArrayList<String>();
  106. //建立算式标签
  107. this.FormulaLabels=newJLabel[80];
  108. //将数组中的每一个标签都实例化
  109. for(inti=0;i<80;i++){
  110. FormulaLabels[i]=newJLabel();
  111. }
  112. //将表达式各项赋值内容,并将随机数的和算出结果存入Arraylist中,以便后期核对结果使用
  113. while(item4<80){
  114. firstNumber=newRandom().nextInt(99)+1;
  115. FormulaLabels[item1].setText(String.valueOf(firstNumber));
  116. FormulaLabels[item2].setText("+");
  117. secondNumber=newRandom().nextInt(99)+1;
  118. FormulaLabels[item3].setText(String.valueOf(secondNumber));
  119. FormulaLabels[item4].setText("=");
  120. sum=firstNumber+secondNumber;
  121. allResult.add(String.valueOf(sum));
  122. item1+=4;
  123. item2+=4;
  124. item3+=4;
  125. item4+=4;
  126. }
  127. //for(inti=0;i<80;i++){
  128. //System.out.println(FormulaLabels[i].getText());
  129. //}
  130. }
  131. /**
  132. *这个方法用来实例化userResults数组,并实例化里面的每一个JTextField
  133. */
  134. privatevoidinitUserRestult(){
  135. userResults=newJTextField[20];
  136. for(inti=0;i<20;i++){
  137. userResults[i]=newJTextField();
  138. userResults[i].setSize(20,20);
  139. //后加的监听
  140. userResults[i].addKeyListener(this);
  141. }
  142. }
  143. /**
  144. *这个方法用来实例化judge数组,并将里面的每一个Label实例化
  145. */
  146. privatevoidinitJudge(){
  147. judge=newJLabel[20];
  148. for(inti=0;i<20;i++){
  149. judge[i]=newJLabel("好好算呦");
  150. }
  151. }
  152. //实现监听方法,当用户点击提交后要做的事情
  153. @Override
  154. publicvoidactionPerformed(ActionEventarg0){
  155. //TODOAuto-generatedmethodstub
  156. intscore=0;
  157. for(inti=0;i<20;i++){
  158. //将用户输入的结果全部获取,存入一个ArrayList中,可以不要
  159. inputResults.add(userResults[i].getText().toString().trim());
  160. System.out.println(userResults[i].getText().toString());
  161. //取出来用户输入的答案和之前算好的结果去比较,不对就把后面的标签设置为回答错误,
  162. //如果正确就设置为回答正确
  163. Stringresult=userResults[i].getText().toString().trim();
  164. if(result.equals(allResult.get(i))){
  165. judge[i].setText("回答正确");
  166. judge[i].setForeground(Color.RED);
  167. score++;
  168. }else{
  169. judge[i].setText("回答错误");
  170. judge[i].setForeground(Color.GREEN);
  171. }
  172. }
  173. scoreField.setText(String.valueOf(score));
  174. }
  175. @Override
  176. publicvoidkeyPressed(KeyEvente){
  177. //TODOAuto-generatedmethodstub
  178. if(e.getKeyCode()==KeyEvent.VK_ENTER){
  179. userResults[textCount].requestFocus();
  180. if(textCount<19){
  181. textCount++;
  182. }
  183. }
  184. }
  185. @Override
  186. publicvoidkeyTyped(KeyEvente){
  187. //TODOAuto-generatedmethodstub
  188. }
  189. @Override
  190. publicvoidkeyReleased(KeyEvente){
  191. //TODOAuto-generatedmethodstub
  192. }
  193. }

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

原文链接:http://blog.csdn.net/u012934723/article/details/54294713

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 基于java swing实现答题系统 https://www.kuaiidc.com/76377.html

相关文章

发表评论
暂无评论