public class aaa { String setword = null;
JFrame f = new JFrame("客户端");
JTextField text = new JTextField(20);
    
    public aaa(){
   
     text.addKeyListener(new KeyListener(){      public void keyPressed(KeyEvent arg0) {
     // TODO 自动生成方法存根
    
     }      public void keyReleased(KeyEvent arg0) {
     // TODO 自动生成方法存根
    
     }      public void keyTyped(KeyEvent arg0) {
     // TODO 自动生成方法存根
     if (arg0.getKeyChar()=='\r') {
      System.out.println(text.getText());  
     }
     }});
    
     f.add(text,BorderLayout.NORTH);
    
     f.setSize(300, 400);
     f.setLocation(100,100);
     f.setVisible(true);

}public static void main(String[] args) {
aaa a = new aaa();

}
}
一个Frame  里 有个text 想在按回车的时候把text里的内容打印到eclipse的console里 
但是if (arg0.getKeyChar()=='\r')这句有问题  我换成 'a'  'T'这些都好使  但是回车符不行  我换成ASCII码 13 也不行
该怎么改啊?

解决方案 »

  1.   


    import java.awt.BorderLayout;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;import javax.swing.JFrame;
    import javax.swing.JTextField;public class aaa { String setword = null;
    JFrame f = new JFrame("客户端");
    JTextField text = new JTextField(20); public aaa() { text.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent arg0) {
    // TODO 自动生成方法存根 } public void keyReleased(KeyEvent arg0) {
    // TODO 自动生成方法存根 } public void keyTyped(KeyEvent arg0) {
    // TODO 自动生成方法存根
    if (arg0.getKeyChar() == KeyEvent.VK_ENTER) { //这里
    System.out.println(text.getText());
    }
    }
    }); f.add(text, BorderLayout.NORTH); f.setSize(300, 400);
    f.setLocation(100, 100);
    f.setVisible(true); } public static void main(String[] args) {
    aaa a = new aaa(); }
    }
      

  2.   

    下面:if (arg0.getKeyChar()==java.awt.event.KeyEvent.VK_ENTER)
      

  3.   

    用KeyEvent里的静态成员变量重写public void keyTyped(KeyEvent arg0) {
                        // TODO 自动生成方法存根
                        if (arg0.getKeyChar()==KeyEvent.VK_ENTER) {
                             System.out.println(text.getText());  
                        }
                    }
    另外, 我觉得用KeyPressed的方法比较好(表示回车键被按下).用KeyTyped好象有的时候不是特别好使