给它加个KeyListener,监听它的输入,用keyTyped(KeyEvent e)方法.做出你想要的响应消息啊

解决方案 »

  1.   

    下面是你要的结果,既然不想让别人修改它的数据,把它设置成只读就好了嘛!
    package key;/**
     *
     * @author  Administrator
     */
    public class FrameKey extends javax.swing.JFrame {
        
         // 变量声明 - 不进行修改
        private javax.swing.JLabel jLabel1;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JTextField txtKey1;
        // 变量声明结束
       /** Creates new form FrameKey */
        public FrameKey() {
            initComponents();
        }
        
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        private void initComponents() {
            jPanel1 = new javax.swing.JPanel();
            jLabel1 = new javax.swing.JLabel();
            txtKey1 = new javax.swing.JTextField();        addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent evt) {
                    exitForm(evt);
                }
            });        jPanel1.setLayout(null);        jLabel1.setText("key 1");
            jPanel1.add(jLabel1);
            jLabel1.setBounds(30, 20, 50, 18);        txtKey1.setText("test");
            txtKey1.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyTyped(java.awt.event.KeyEvent evt) {
    javax.swing.JOptionPane.showMessageDialog(null,"数据错误");
                       //加上你自己的处理方法
                }
    });
            jPanel1.add(txtKey1);
            txtKey1.setBounds(80, 20, 80, 24);        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);        pack();
        }    
        /** Exit the Application */
        private void exitForm(java.awt.event.WindowEvent evt) {
            System.exit(0);
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            FrameKey key = new FrameKey();
            key.setSize(200,180);
            key.show();
        }
        
        
    }
      

  2.   

    用这个方法还是捕捉不到由
    JTextField.setText方法引起的修改。
      

  3.   

    JTextField.getDocument.addDocumentListener( DocumentListener listener )DocumentListener{
     void changedUpdate(DocumentEvent e)  void insertUpdate(DocumentEvent e)  void removeUpdate(DocumentEvent e) }另,小气鬼,你给的分数好少哦,呵呵。
      

  4.   

    JTextField.getDocument.addDocumentListener( DocumentListener listener )DocumentListener{
     void changedUpdate(DocumentEvent e)  void insertUpdate(DocumentEvent e)  void removeUpdate(DocumentEvent e) }
    ----------------------
    好办法别什么都总是?,自己研究一下不懂的再问啊