Advertisement
Guest User

Untitled

a guest
Jun 29th, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.45 KB | None | 0 0
  1. package project;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.GridLayout;
  6. import java.awt.Toolkit;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import javax.swing.*;
  10. /**
  11. *
  12. * @author Aneta
  13. */
  14.  
  15. class Menu extends JFrame implements ActionListener {
  16.  
  17. Dimension d;
  18. JFrame frame;
  19. JPanel panel;
  20. JButton button;
  21. JLabel label;
  22. JTextArea text;
  23. JRadioButton radio;
  24. JScrollPane sp;
  25. JTextField firstName;
  26. JTextField lastName;
  27. ButtonGroup group0=new ButtonGroup();
  28. ButtonGroup group1=new ButtonGroup();
  29. ButtonGroup group2=new ButtonGroup();
  30. ButtonGroup group3=new ButtonGroup();
  31. ButtonGroup group4=new ButtonGroup();
  32. ButtonGroup group5=new ButtonGroup();
  33. ButtonGroup group6=new ButtonGroup();
  34. ButtonGroup group7=new ButtonGroup();
  35. ButtonGroup group8=new ButtonGroup();
  36. ButtonGroup group9=new ButtonGroup();
  37.  
  38. Questions statements;
  39. Answers points;
  40. playerData player;
  41.  
  42. Menu() {
  43.  
  44. }
  45.  
  46. public void start(){
  47. frame=new JFrame ("Mechanical Engineering- Quiz");
  48. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  49. d=Toolkit.getDefaultToolkit().getScreenSize();
  50. frame.setSize(1380, 725);
  51.  
  52. panel=new JPanel();
  53. panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS));
  54. panel.setBackground(Color.LIGHT_GRAY);
  55. frame.add(panel);
  56.  
  57. button=new JButton("START");
  58. button.addActionListener((ActionListener)this);
  59. button.setAlignmentX(Component.CENTER_ALIGNMENT);
  60. panel.add(Box.createRigidArea(new Dimension(50,200)));
  61. panel.add(button);
  62.  
  63. button=new JButton("EXIT");
  64. button.addActionListener((ActionListener)this);
  65. button.setAlignmentX(Component.CENTER_ALIGNMENT);
  66. panel.add(button);
  67.  
  68. frame.setVisible(true); //window is visible
  69. }
  70.  
  71. public void clean(){
  72. panel.removeAll();
  73. }
  74.  
  75. public void signIn(){
  76.  
  77. label=new JLabel ("Your First Name: ");
  78. panel.add(label);
  79. firstName = new JTextField("");
  80. panel.add(firstName);
  81. label=new JLabel ("Your Last Name: ");
  82. panel.add(label);
  83. lastName = new JTextField("");
  84. panel.add(lastName);
  85. lastName.setSize(200, 100);
  86. button=new JButton("START THE QUIZ");
  87. button.addActionListener(this);
  88. panel.add(button);
  89. panel.validate();
  90.  
  91. }
  92.  
  93. public void questions(){
  94.  
  95. panel.setLayout(new GridLayout(0,4));//*nieskończoność wierszy->0 , 4 kolumny
  96.  
  97. String[] t = new String[100];
  98. statements = new Questions();
  99. t = statements.fillQuestions();
  100.  
  101.  
  102. String[][] a = new String[40][];
  103. points = new Answers();
  104. a = points.scheme();//*pobiera odpowiedzi z klasy
  105.  
  106. for(int i=0; i<10; i++){
  107. label = new JLabel(t[i]);
  108. panel.add(label);
  109.  
  110. label = new JLabel();//*puste 3 labele aby przenieść do nowej linii
  111. panel.add(label);
  112. label = new JLabel();
  113. panel.add(label);
  114. label = new JLabel();
  115. panel.add(label);
  116.  
  117. for(int j=0; j<4; j++){
  118. radio = new JRadioButton(a[j][i]);//*wywołujemy domy
  119. radio.setContentAreaFilled(false);//*przezroczyste przyciski
  120. radio.setActionCommand(radio.getText());//*pobranie ostatecznej odpowiedzi
  121. switch (i){//*tylko jedna odpowiedź możliwa do zaznaczenia
  122. case 0:
  123. group0.add(radio);//*grupy buttonów (w poziomie)
  124. break;
  125. case 1:
  126. group1.add(radio);
  127. break;
  128. case 2:
  129. group2.add(radio);
  130. break;
  131. case 3:
  132. group3.add(radio);
  133. break;
  134. case 4:
  135. group4.add(radio);
  136. break;
  137. case 5:
  138. group5.add(radio);
  139. break;
  140. case 6:
  141. group6.add(radio);
  142. break;
  143. case 7:
  144. group7.add(radio);
  145. break;
  146. case 8:
  147. group8.add(radio);
  148. break;
  149. case 9:
  150. group9.add(radio);
  151. break;
  152. }
  153. radio.setSelected(rootPaneCheckingEnabled); //* zaznaczamy ostatni przycisk, aby wymusić na użytkowniku wybór każdego pola
  154. panel.add(radio);//*ostatecznie wyświetla button dla usera
  155. }
  156. }
  157. button = new JButton("CHECK RESULTS");
  158. button.addActionListener(this);
  159. panel.add(button);
  160.  
  161. label = new JLabel();
  162. panel.add(label);
  163. label = new JLabel();
  164. panel.add(label);
  165. label = new JLabel();
  166. panel.add(label);
  167.  
  168. frame=new JFrame();
  169. panel.validate();
  170. frame.pack();
  171. }
  172.  
  173. public void results(String firstName, String lastName, String[]ans){
  174.  
  175. panel.setLayout(new GridLayout(0,1));
  176.  
  177. int value=0;
  178. for(int i=0; i<10; i++){
  179. switch (ans[i]){
  180. case "area of surface of revolution":
  181. value++;
  182. break;
  183. case "Pappus Guldinus' theorem":
  184. value=value+2;
  185. break;
  186. case "support loads, straight members, cayy loads, joint located at the end of member, two-force members":
  187. value=value+3;
  188. break;
  189. case "it is important to include tangential and normal acceleration":
  190. value=value+4;
  191. break;
  192. case "I=Io+md^2":
  193. value=value+5;
  194. break;
  195. case "we can use second moment of inertia interchangeably amicably with formula":
  196. value=value+6;
  197. break;
  198. case "Yes":
  199. value=value+7;
  200. break;
  201. case "ductility":
  202. value=value+8;
  203. break;
  204. case "maximum distortion energy criterion":
  205. value=value+9;
  206. break;
  207. case "Vickers":
  208. value=value+10;
  209. break;
  210.  
  211. }
  212. }
  213. String a;
  214. if (value<6){
  215.  
  216. a="You have failed. Try again!";
  217.  
  218. button = new JButton("DO THE TEST AGAIN");
  219. button.addActionListener(this);
  220. panel.add(button);
  221. button = new JButton("EXIT");
  222. button.addActionListener(this);
  223. panel.add(button);
  224.  
  225. }
  226. else{
  227.  
  228. a="Congratulations! You have passed.";
  229.  
  230. button = new JButton("EXIT");
  231. button.addActionListener(this);
  232. panel.add(button);
  233.  
  234. }
  235.  
  236. text=new JTextArea();
  237. text.setText(a);
  238. text.setLineWrap(true);
  239. text.setWrapStyleWord(true);
  240. sp = new JScrollPane(text);
  241. panel.add(sp);
  242.  
  243. panel.validate();
  244. }
  245.  
  246. @Override
  247. public void actionPerformed(ActionEvent ae) {
  248.  
  249.  
  250. String source = ae.getActionCommand();
  251. if (null != source)//*gdy nie wciśnie się guzika nic się nie wydarzy/zabezpieczenie
  252.  
  253.  
  254.  
  255. switch (source) {
  256. case "EXIT":
  257. System.exit(0);
  258. case "START":
  259. clean();
  260. signIn();
  261. break;
  262. case "START THE QUIZ":
  263. player = new playerData();
  264. player.firstNameDownload(firstName.getText());
  265. player.lastNameDownload(lastName.getText());
  266. clean();
  267. questions();
  268. break;
  269. case "CHECK RESULTS":
  270. String[] f = new String[10];
  271. f[0] = group0.getSelection().getActionCommand();
  272. f[1] = group1.getSelection().getActionCommand();
  273. f[2] = group2.getSelection().getActionCommand();
  274. f[3] = group3.getSelection().getActionCommand();
  275. f[4] = group4.getSelection().getActionCommand();
  276. f[5] = group5.getSelection().getActionCommand();
  277. f[6] = group6.getSelection().getActionCommand();
  278. f[7] = group7.getSelection().getActionCommand();
  279. f[8] = group8.getSelection().getActionCommand();
  280. f[9] = group9.getSelection().getActionCommand();
  281. player.answerDownload(f);
  282. clean();
  283. results(player.firstName, player.lastName, player.answer);
  284. break;
  285. case "DO THE TEST AGAIN":
  286. clean();
  287. player.reset();
  288. signIn();
  289. break;
  290. }
  291. }
  292. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement