Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package gui.actions;
- import gui.handlers.InputHandler;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import javax.swing.JTextField;
- public class MyKeyListener implements KeyListener {
- private final int type;
- private final int custom_len;
- public MyKeyListener(final int val, final int val2) {
- super();
- this.type = val;
- this.custom_len = val2;
- }
- public MyKeyListener(final int val) {
- super();
- this.type = val;
- this.custom_len = 0;
- }
- /*
- * type == 1 :: (Unos do 30 karaktera string) - InputHandler.getMaxInputLenStr()
- * type == 2 :: (Unos do 30 karaktera int) - InputHandler.getMaxInputLenStr()
- * type == 3 :: (Unos do 3 karaktera string) - InputHandler.getMinInputLenStr()
- * type == 4 :: (Unos do 3 karaktera int) - InputHandler.getMinInputLenStr()
- * type == 5 :: RegEx (todo)
- * type == 6 :: Specijalni Znakovi (todo)
- * type == 7 :: Digit-only [custom len]
- * type == 8 :: String [custom len]
- * type == 9 :: Telefon (Specijalan slucaj kada je potrebno samo da detektuje brojeve i znak "+")
- */
- @Override
- public void keyTyped(KeyEvent e) {
- if (e.isActionKey() || e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_BACK_SPACE)
- return;
- if (e.getSource() instanceof JTextField) {
- JTextField txtf = (JTextField)e.getComponent();
- InputHandler ih = InputHandler.getInstance();
- char c = e.getKeyChar();
- switch(type) {
- case 1: // Unos do 30 znakova [string]
- if (txtf.getText().length() > ih.getMaxInputLenStr()) {
- txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr()));
- }
- break;
- case 2: // Unos do 30 znakova [int]
- if (!Character.isDigit(c))
- e.consume();
- if (txtf.getText().length() > ih.getMaxInputLenStr()) {
- txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr()));
- }
- break;
- case 3: // Unos do 3 znaka [string]
- if (txtf.getText().length() > ih.getMaxInputLenInt()) {
- txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenInt()));
- }
- break;
- case 4: // Unos do 3 karaktera [int]
- if (!Character.isDigit(c))
- e.consume();
- if (txtf.getText().length() > ih.getMaxInputLenInt()) {
- txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenInt()));
- }
- break;
- case 5: // Mora nesto ostati i za TODO
- // Meh
- break;
- case 6: // Mora nesto ostati i za TODO
- // Meh
- break;
- case 7: // Samo int uz custom duzinu unosa
- if (type == 7 && custom_len > 0) {
- if (!Character.isDigit(c))
- e.consume();
- if (txtf.getText().length() > custom_len) {
- txtf.setText(txtf.getText().substring(0, custom_len));
- }
- }
- break;
- case 8: // String uz custom duzinu unosa
- if (type == 8 && custom_len > 0) {
- if (txtf.getText().length() > custom_len) {
- txtf.setText(txtf.getText().substring(0, custom_len));
- }
- }
- break;
- case 9: // Specijalan slucaj...telefooon!
- if (!Character.isDigit(c) && c != '+') // Dozvoljeni su samo brojevi i "+" znak zbog tel. broja...
- e.consume();
- if (txtf.getText().length() > ih.getMaxInputLenStr()) {
- txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr()));
- }
- break;
- default:
- // Nesto kao poruka neka cisto reda radi...za debug.
- System.out.println("Nepoznata tip proslijedjen za listener :: MyKeyListener.java");
- break;
- }
- }
- return;
- }
- @Override
- public void keyPressed(KeyEvent e) {
- // TODO Auto-generated method stub
- }
- @Override
- public void keyReleased(KeyEvent e) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement