src/de/uapcore/sudoku/SudokuTextField.java

changeset 1
f1d7de36b01e
child 2
5179eff8a9b6
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/de/uapcore/sudoku/SudokuTextField.java	Sat Jan 26 15:48:59 2013 +0100
     1.3 @@ -0,0 +1,71 @@
     1.4 +package de.uapcore.sudoku;
     1.5 +
     1.6 +import java.awt.Color;
     1.7 +import java.awt.Dimension;
     1.8 +import java.awt.Font;
     1.9 +import java.awt.event.FocusAdapter;
    1.10 +import java.awt.event.FocusEvent;
    1.11 +import java.awt.event.KeyAdapter;
    1.12 +import java.awt.event.KeyEvent;
    1.13 +import javax.swing.JTextField;
    1.14 +
    1.15 +/**
    1.16 + *
    1.17 + * @author mike
    1.18 + */
    1.19 +public class SudokuTextField extends JTextField {
    1.20 +    
    1.21 +    public SudokuTextField() {
    1.22 +        setBorder(null);
    1.23 +        setBackground(Color.WHITE);
    1.24 +        
    1.25 +        setFont(new Font("Dialog", Font.PLAIN, 18));
    1.26 +        setHorizontalAlignment(JTextField.CENTER);
    1.27 +        
    1.28 +        Dimension dim = new Dimension(40,40);
    1.29 +        setPreferredSize(dim);
    1.30 +        setMinimumSize(dim);
    1.31 +        setMaximumSize(dim);
    1.32 +        
    1.33 +        addKeyListener(new KeyAdapter() {
    1.34 +            private void handle(KeyEvent e) {
    1.35 +                if (getText().length() > 0) {
    1.36 +                    int c = e.getKeyCode();
    1.37 +                    if (c != KeyEvent.VK_DELETE &&
    1.38 +                            c != KeyEvent.VK_BACK_SPACE &&
    1.39 +                            !e.isActionKey()) {
    1.40 +                        e.consume();
    1.41 +                    }
    1.42 +                } else {
    1.43 +                    char c = e.getKeyChar();
    1.44 +                    if (c < '0' || c > '9') {
    1.45 +                        e.consume();
    1.46 +                    }
    1.47 +                }
    1.48 +            }
    1.49 +            
    1.50 +            @Override
    1.51 +            public void keyPressed(KeyEvent e) {
    1.52 +                handle(e);
    1.53 +            }
    1.54 +
    1.55 +            @Override
    1.56 +            public void keyTyped(KeyEvent e) {
    1.57 +                handle(e);
    1.58 +            }
    1.59 +
    1.60 +            @Override
    1.61 +            public void keyReleased(KeyEvent e) {
    1.62 +                handle(e);
    1.63 +            }
    1.64 +            
    1.65 +        });
    1.66 +        addFocusListener(new FocusAdapter() {
    1.67 +            @Override
    1.68 +            public void focusGained(FocusEvent e) {
    1.69 +                selectAll();
    1.70 +            }
    1.71 +        });
    1.72 +    }
    1.73 +    
    1.74 +}

mercurial