Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. public class CalculatorController {
  2. private CalculatorModel cm;
  3. private CalculatorFrame cv;
  4. private int operatorIndex = 0;
  5.  
  6. public CalculatorController(CalculatorModel m, CalculatorFrame v) {
  7. cm = m;
  8. cv = v;
  9. }
  10.  
  11. public void initController() {
  12. cv.getBtn0().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "0"));
  13. cv.getBtn1().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "1"));
  14. cv.getBtn2().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "2"));
  15. cv.getBtn3().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "3"));
  16. cv.getBtn4().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "4"));
  17. cv.getBtn5().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "5"));
  18. cv.getBtn6().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "6"));
  19. cv.getBtn7().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "7"));
  20. cv.getBtn8().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "8"));
  21. cv.getBtn9().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "9"));
  22. cv.getBtnDot().addActionListener(e -> cv.setTextFieldText(cv.getTextFieldText() + "."));
  23.  
  24. cv.getBtnDiv().addActionListener(e -> {
  25. cm.calculate(newNumber());
  26. cm.setLastOperator("/");
  27. operatorIndex = cv.getTextFieldText().length();
  28. System.out.println("Model Result: " + cm.getResult()); //Why you giving 0?!?!
  29. System.out.println("Operator Index: " + operatorIndex);
  30.  
  31. cv.setTextFieldText(cv.getTextFieldText() + "/");
  32. });
  33.  
  34. cv.getBtnSub().addActionListener(e -> {
  35. cm.setLastOperator("-");
  36. operatorIndex = cv.getTextFieldText().length() - 1;
  37. });
  38.  
  39. cv.getBtnAdd().addActionListener(e -> {
  40. cm.setLastOperator("+");
  41. operatorIndex = cv.getTextFieldText().length() - 1;
  42. });
  43.  
  44. cv.getBtnMul().addActionListener(e -> {
  45. cm.setLastOperator("*");
  46. operatorIndex = cv.getTextFieldText().length() - 1;
  47. });
  48.  
  49. cv.getBtnEqu().addActionListener(e -> {
  50. cm.calculate(newNumber());
  51. cm.setLastOperator("=");
  52. cv.setTextFieldText(cv.getTextFieldText() + "=" + cm.getResult());
  53. });
  54. }
  55.  
  56. private double newNumber(){
  57. String s;
  58. if(operatorIndex != 0) {
  59. s = cv.getTextFieldText().substring(operatorIndex + 1, cv.getTextFieldText().length());
  60. System.out.println("Result: " + s);
  61. } else {
  62. s = cv.getTextFieldText().substring(0, cv.getTextFieldText().length());
  63. System.out.println("Result: " + s);
  64. }
  65. return Double.parseDouble(s);
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement