Advertisement
Lauda

Untitled

Dec 31st, 2013
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.64 KB | None | 0 0
  1. package gui.actions;
  2.  
  3. import gui.handlers.InputHandler;
  4.  
  5. import java.awt.event.KeyEvent;
  6. import java.awt.event.KeyListener;
  7.  
  8. import javax.swing.JTextField;
  9.  
  10. public class MyKeyListener implements KeyListener {
  11.     private final int type;
  12.     private final int custom_len;
  13.    
  14.     public MyKeyListener(final int val, final int val2) {
  15.         super();
  16.         this.type = val;
  17.         this.custom_len = val2;
  18.     }
  19.    
  20.     public MyKeyListener(final int val) {
  21.         super();
  22.         this.type = val;
  23.         this.custom_len = 0;
  24.     }
  25.    
  26. /*
  27. * type == 1 :: (Unos do 30 karaktera string) - InputHandler.getMaxInputLenStr()
  28. * type == 2 :: (Unos do 30 karaktera int) - InputHandler.getMaxInputLenStr()
  29. * type == 3 :: (Unos do 3 karaktera string) - InputHandler.getMinInputLenStr()
  30. * type == 4 :: (Unos do 3 karaktera int) - InputHandler.getMinInputLenStr()
  31. * type == 5 :: RegEx (todo)
  32. * type == 6 :: Specijalni Znakovi (todo)
  33. * type == 7 :: Digit-only [custom len]
  34. * type == 8 :: String [custom len]
  35. * type == 9 :: Telefon (Specijalan slucaj kada je potrebno samo da detektuje brojeve i znak "+")
  36.  */
  37.  
  38.     @Override
  39.     public void keyTyped(KeyEvent e) {
  40.         if (e.isActionKey() || e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_BACK_SPACE)
  41.             return;
  42.        
  43.         if (e.getSource() instanceof JTextField) {
  44.             JTextField txtf = (JTextField)e.getComponent();
  45.             InputHandler ih = InputHandler.getInstance();
  46.             char c = e.getKeyChar();
  47.            
  48.             switch(type) {
  49.            
  50.             case 1: // Unos do 30 znakova [string]
  51.                 if (txtf.getText().length() > ih.getMaxInputLenStr()) {
  52.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr())); 
  53.                 }
  54.                 break;
  55.                
  56.             case 2: // Unos do 30 znakova [int]
  57.                 if (!Character.isDigit(c))
  58.                     e.consume();
  59.                
  60.                 if (txtf.getText().length() > ih.getMaxInputLenStr()) {
  61.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr())); 
  62.                 }
  63.                 break;
  64.                
  65.             case 3: // Unos do 3 znaka [string]
  66.                 if (txtf.getText().length() > ih.getMaxInputLenInt()) {
  67.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenInt())); 
  68.                 }
  69.                 break;
  70.                
  71.             case 4: // Unos do 3 karaktera [int]
  72.                 if (!Character.isDigit(c))
  73.                     e.consume();
  74.                
  75.                 if (txtf.getText().length() > ih.getMaxInputLenInt()) {
  76.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenInt())); 
  77.                 }
  78.                 break;
  79.                
  80.             case 5: // Mora nesto ostati i za TODO
  81.                 // Meh
  82.                 break;
  83.                
  84.             case 6: // Mora nesto ostati i za TODO
  85.                 // Meh
  86.                 break;
  87.                
  88.             case 7: // Samo int uz custom duzinu unosa
  89.                 if (type == 7 && custom_len > 0) {
  90.                     if (!Character.isDigit(c))
  91.                         e.consume();
  92.                
  93.                     if (txtf.getText().length() > custom_len) {
  94.                         txtf.setText(txtf.getText().substring(0, custom_len)); 
  95.                     }
  96.                 }
  97.                 break;
  98.                
  99.             case 8: // String uz custom duzinu unosa
  100.                 if (type == 8 && custom_len > 0) {
  101.                     if (txtf.getText().length() > custom_len) {
  102.                         txtf.setText(txtf.getText().substring(0, custom_len)); 
  103.                     }
  104.                 }
  105.                 break;
  106.                
  107.             case 9: // Specijalan slucaj...telefooon!
  108.                 if (!Character.isDigit(c) && c != '+') // Dozvoljeni su samo brojevi i "+" znak zbog tel. broja...
  109.                     e.consume();
  110.                 if (txtf.getText().length() > ih.getMaxInputLenStr()) {
  111.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr())); 
  112.                 }
  113.                 break;
  114.                
  115.             default:
  116.                 // Nesto kao poruka neka cisto reda radi...za debug.
  117.                 System.out.println("Nepoznata tip proslijedjen za listener :: MyKeyListener.java");
  118.                 break;
  119.             }
  120.         }
  121.         return;
  122.     }
  123.    
  124.  
  125.     @Override
  126.     public void keyPressed(KeyEvent e) {
  127.         // TODO Auto-generated method stub
  128.     }
  129.  
  130.     @Override
  131.     public void keyReleased(KeyEvent e) {
  132.     }
  133.  
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement