Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.24 KB | None | 0 0
  1.  
  2. // CustomValidator
  3. import customValidator.TextFieldValidator;
  4. import javax.swing.*;
  5. import java.awt.Color;
  6. import java.awt.*;
  7. import java.awt.event.*;
  8.  
  9. public class MainFrame extends JFrame {
  10.  
  11. // form objects
  12. private static final int FRAME_WIDTH = 535, FRAME_HEIGHT = 465, FRAME_X = 150, FRAME_Y = 250;
  13. private JTextField txtOne, txtTwo, txtThree;
  14. private JButton btnReset, btnOk;
  15. private JLabel lblHints, lblGuesses, lblTitle;
  16. private JTextArea txtOutput;
  17. private JScrollPane pnlScroll;
  18. private String x;
  19. private int guesses;
  20. private TextFieldValidator validator1, validator2, validator3;
  21. Fermi fermi = new Fermi();
  22.  
  23.  
  24. public static void main(String[] args) {
  25. MainFrame jframe;
  26. jframe = new MainFrame();
  27. jframe.setVisible(true);
  28. }
  29.  
  30. public MainFrame() {
  31. // constructing JFrame
  32. this.setTitle("Fermi Guessing Game");
  33. this.setSize(FRAME_WIDTH, FRAME_HEIGHT);
  34. this.setLocation(FRAME_X, FRAME_Y);
  35. this.setResizable(false);
  36. this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  37.  
  38. // -------------------------------------------- construct container
  39. JPanel contentPanel = new JPanel();
  40. // set layout manager of JPanel
  41. contentPanel.setLayout(null);
  42.  
  43. // -------------------------------------------- constructing labels
  44. lblTitle = new JLabel("Fermi Guessing Game");
  45. lblTitle.setFont(new Font("Arial", Font.BOLD, 14));
  46. lblTitle.setBounds(22, 19, 156, 16);
  47. contentPanel.add(lblTitle);
  48.  
  49. lblGuesses = new JLabel("Enter your three guesses (0-9):");
  50. lblGuesses.setFont(new Font("Arial", Font.PLAIN, 14));
  51. lblGuesses.setBounds(22, 47, 201, 16);
  52. contentPanel.add(lblGuesses);
  53.  
  54. lblHints = new JLabel("Hints:");
  55. lblHints.setFont(new Font("Arial", Font.PLAIN, 14));
  56. lblHints.setBounds(253, 47, 61, 16);
  57. contentPanel.add(lblHints);
  58.  
  59. // -------------------------------------------- constructing txtFields
  60. txtOne = new JTextField();
  61. txtOne.setBounds(19, 69, 93, 46);
  62. txtOne.setColumns(10);
  63. contentPanel.add(txtOne);
  64.  
  65. txtTwo = new JTextField();
  66. txtTwo.setColumns(10);
  67. txtTwo.setBounds(19, 118, 93, 46);
  68. contentPanel.add(txtTwo);
  69.  
  70. txtThree = new JTextField();
  71. txtThree.setColumns(10);
  72. txtThree.setBounds(19, 167, 93, 46);
  73. contentPanel.add(txtThree);
  74.  
  75. // -------------------------------------------- constructing button objects
  76. btnOk = new JButton("Ok");
  77. btnOk.setFont(new Font("Arial", Font.PLAIN, 14));
  78. btnOk.setBounds(19, 216, 93, 46);
  79. contentPanel.add(btnOk);
  80.  
  81. //btnOk action listener
  82. btnOk.addActionListener((ActionEvent e) -> onOk(e));
  83.  
  84. btnReset = new JButton("Reset");
  85. btnReset.setFont(new Font("Arial", Font.BOLD, 14));
  86. btnReset.setBounds(19, 370, 93, 46);
  87. contentPanel.add(btnReset);
  88.  
  89. //btnReset action listener
  90. btnReset.addActionListener((ActionEvent e) -> onReset(e));
  91.  
  92. // -------------------------------------------- scrollbar
  93. pnlScroll = new JScrollPane();
  94. pnlScroll.setBounds(253, 69, 265, 347);
  95. contentPanel.add(pnlScroll);
  96.  
  97. // -------------------------------------------- constructing txtArea
  98. txtOutput = new JTextArea();
  99. pnlScroll.setViewportView(txtOutput);
  100. txtOutput.setEditable(false);
  101.  
  102. this.add(contentPanel);
  103.  
  104. // game numbers
  105. fermi.generateNum();
  106. resetInput();
  107. }
  108.  
  109. private void onOk(ActionEvent e) {
  110. Fermi fermi = new Fermi();
  111.  
  112. // validator objects
  113. validator1 = new TextFieldValidator(txtOne);
  114. validator1.setRegExp("\\d");
  115. validator2 = new TextFieldValidator(txtTwo);
  116. validator2.setRegExp("\\d");
  117. validator3 = new TextFieldValidator(txtThree);
  118. validator3.setRegExp("\\d");
  119.  
  120. // check if textfield inputs follow regExp
  121. if (validator1.check()) {
  122. validator1.setErrorColor(Color.RED);
  123. } if (validator2.check()) {
  124. validator2.setErrorColor(Color.RED);
  125. } if (validator3.check()) {
  126. validator3.setErrorColor(Color.RED);
  127. }
  128.  
  129. int a, b, c;
  130. // validate textfields
  131. a = Integer.parseInt(txtOne.getText());
  132. b = Integer.parseInt(txtTwo.getText());
  133. c = Integer.parseInt(txtThree.getText());
  134.  
  135. //System.out.println(fermi.generateNum());
  136.  
  137. System.out.println(a);
  138. System.out.println(b);
  139. System.out.println(c);
  140.  
  141. // guess counter
  142. guesses++;
  143. // clear for next game
  144. resetInput();
  145.  
  146. // calculate hint and output
  147. //String hint = fermi.hint(a, b, c);
  148. //txtOutput.append(a + " " + b + " " + c + " : " + hint);
  149.  
  150. // winner winner chicken dinner
  151. // if (hint.equals("Fermi Fermi Fermi")) {
  152. // txtOne.setEnabled(false);
  153. // txtTwo.setEnabled(false);
  154. // txtThree.setEnabled(false);
  155. // btnOk.setEnabled(false);
  156. // txtOutput.append("Congratulations! Guesses: " + guesses);
  157. // }
  158. }
  159.  
  160. private void onReset(ActionEvent e) {
  161. Fermi fermi = new Fermi();
  162.  
  163. // when reset is clicked -- reset game
  164. //fermi.generateNum();
  165. resetInput();
  166. txtOutput.setText("");
  167. btnOk.setEnabled(true);
  168. txtOne.setEnabled(true);
  169. txtTwo.setEnabled(true);
  170. txtThree.setEnabled(true);
  171. // reset guess count back to 0
  172. guesses = 0;
  173. }
  174.  
  175. private void resetInput() {
  176. // reset all inputs on interface
  177. x = "";
  178. txtOne.setText(x);
  179. txtOne.requestFocusInWindow();
  180. txtTwo.setText(x);
  181. txtThree.setText(x);
  182. txtOutput.setText(x);
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement