×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: Dread Morpheus
Added: Aug 14, 2017 12:23 AM
Modified: Sep 7, 2017 7:16 PM
Views: 3
Is there a more efficient way of doing this?
  1. package listeners;
  2.  
  3. import command.*;
  4. import java.awt.event.KeyEvent;
  5. import static java.awt.event.KeyEvent.*;
  6. import java.awt.event.KeyListener;
  7.  
  8. /**
  9.  * Listener for all keyboard keys that appear in the user interface. Note :
  10.  * Enter represents = and Escape will reset the calculator. Only the keyPressed
  11.  * method was used to accomplish this task.
  12.  *
  13.  * @author Diallo Thomas - 1695768@bdeb.qc.ca
  14.  */
  15. public class KeyListeners implements KeyListener {
  16.  
  17.     /**
  18.      * Objets de type Command.
  19.      */
  20.     private final Command[] commands = {new Command0(), new Command1(),
  21.         new Command2(), new Command3(), new Command4(), new Command5(),
  22.         new Command6(), new Command7(), new Command8(), new Command9(),
  23.         new CommandAdd(), new CommandClear(), new CommandDecimal(),
  24.         new CommandDivide(), new CommandMemAdd(), new CommandMemSubtract(),
  25.         new CommandMemRecall(), new CommandSubtract(), new CommandMultiply(),
  26.         new CommandSolve()};
  27.  
  28.     @Override
  29.     public void keyTyped(KeyEvent ke) {
  30.     }
  31.  
  32.     @Override
  33.     public void keyPressed(KeyEvent ke) {
  34.         int index;
  35.         switch (ke.getKeyCode()) {
  36.             case VK_0:
  37.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  38.                 commands[index].execute();
  39.                 break;
  40.             case VK_NUMPAD0:
  41.                 index = 0;
  42.                 commands[index].execute();
  43.                 break;
  44.             case VK_1:
  45.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  46.                 commands[index].execute();
  47.                 break;
  48.             case VK_NUMPAD1:
  49.                 index = 1;
  50.                 commands[index].execute();
  51.                 break;
  52.             case VK_2:
  53.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  54.                 commands[index].execute();
  55.                 break;
  56.             case VK_NUMPAD2:
  57.                 index = 2;
  58.                 commands[index].execute();
  59.                 break;
  60.             case VK_3:
  61.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  62.                 commands[index].execute();
  63.                 break;
  64.             case VK_NUMPAD3:
  65.                 index = 3;
  66.                 commands[index].execute();
  67.                 break;
  68.             case VK_4:
  69.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  70.                 commands[index].execute();
  71.                 break;
  72.             case VK_NUMPAD4:
  73.                 index = 4;
  74.                 commands[index].execute();
  75.                 break;
  76.             case VK_5:
  77.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  78.                 commands[index].execute();
  79.                 break;
  80.             case VK_NUMPAD5:
  81.                 index = 5;
  82.                 commands[index].execute();
  83.                 break;
  84.             case VK_6:
  85.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  86.                 commands[index].execute();
  87.                 break;
  88.             case VK_NUMPAD6:
  89.                 index = 6;
  90.                 commands[index].execute();
  91.                 break;
  92.             case VK_7:
  93.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  94.                 commands[index].execute();
  95.                 break;
  96.             case VK_NUMPAD7:
  97.                 index = 7;
  98.                 commands[index].execute();
  99.                 break;
  100.             case VK_8:
  101.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  102.                 commands[index].execute();
  103.                 break;
  104.             case VK_NUMPAD8:
  105.                 index = 8;
  106.                 commands[index].execute();
  107.                 break;
  108.             case VK_9:
  109.                 index = Integer.parseInt(getKeyText(ke.getKeyCode()));
  110.                 commands[index].execute();
  111.                 break;
  112.             case VK_NUMPAD9:
  113.                 index = 9;
  114.                 commands[index].execute();
  115.                 break;
  116.             case VK_ADD:
  117.                 index = 10;
  118.                 commands[index].execute();
  119.                 break;
  120.             case VK_ESCAPE:
  121.                 index = 11;
  122.                 commands[index].execute();
  123.                 break;
  124.             case VK_DECIMAL:
  125.                 index = 12;
  126.                 commands[index].execute();
  127.                 break;
  128.             case VK_DIVIDE:
  129.                 index = 13;
  130.                 commands[index].execute();
  131.                 break;
  132.             case VK_SUBTRACT:
  133.                 index = 17;
  134.                 commands[index].execute();
  135.                 break;
  136.             case VK_MULTIPLY:
  137.                 index = 18;
  138.                 commands[index].execute();
  139.                 break;
  140.             case VK_ENTER:
  141.                 index = 19;
  142.                 commands[index].execute();
  143.                 break;
  144.             default:
  145.                 break;
  146.         }
  147.     }
  148.  
  149.     @Override
  150.     public void keyReleased(KeyEvent ke) {
  151.     }
  152.  
  153. }
  154.