listening the keybord and ignore the key press

解决方案 »

  1.   

    how ignore the key press?
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.util.*;public class CalendarBox {
    public static void main(String[] args) {
    JFrame f = new JFrame();

    SpinnerDateModel model = new SpinnerDateModel();
    TimerSpinner s = new TimerSpinner(model);
    /**
    ChangeListener cl = new ChangeListener() {
    public void stateChanged(ChangeEvent e) {
    SpinnerModel source = (SpinnerModel)e.getSource();
    System.out.println("The value is: " + source.getValue());
    }
    };
    model.addChangeListener(cl);
    **/
    f.getContentPane().add(s);
    f.pack();
    f.show();
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    }
    }class TimerSpinner extends JSpinner implements KeyListener {
    public TimerSpinner() {
    this(new SpinnerDateModel());
    }
    public TimerSpinner(SpinnerDateModel model) {
    super(model);
    setEditor(new JSpinner.DateEditor(this, "yyyy-MM-dd HH:mm:ss"));
    requestFocus();
    addKeyListener(this);
    } //KeyListener implements method
    public void keyPressed(KeyEvent e) {
    int code = e.getKeyCode();
    System.out.println("in keyPressed() out if.");
    if (code == KeyEvent.VK_DELETE || code == KeyEvent.VK_BACK_SPACE) {
    System.out.println("specified key pressed.");
    ///////////////////////here how ignore???????????????????????????????
    }
    }
    public void keyReleased(KeyEvent e) {
    }
    public void keyTyped(KeyEvent e) {
    char c = e.getKeyChar();
    String numStr = "0123456789";
    if (numStr.indexOf(c) == -1) {
    System.out.println("pressed key is not number.");
    ///////////////////////here how ignore???????????????????????????????
    }
    }
    }
      

  3.   

    还有一个问题是为什么这个程序中没有执行keyPressed等方法?
    大虾们可以运行一试!!!