1 import java.awt.event.*; 2 import java.awt.*; 3 import javax.swing.*; 4 5 /* 6 * 设计一个窗口,窗口中有一个文本框。程序对键盘输入进行监视,当输入一个整数和回车符时,在文本框中输出1至该整数的数列和; 7 * 如果中间输入非数字的其他字符,在文本框中显示输入错误,重新输入的提示。 8 * */ 9 class ExMyFrame69 extends JFrame implements KeyListener { 10 JTextField text = new JTextField("请输入一个整数后按下回车键确认"); 11 String num; //输入的整数值 12 boolean isInt = false; 13 ExMyFrame69(){ 14 num = ""; //输入值初始化 15 setTitle("KeyListener键盘事件监听练习"); 16 setSize(500,300); 17 setLayout(null); 18 text.setBounds(20,100,400,30); 19 this.add(text); 20 21 text.setFocusable(false);//系统默认会将焦点置于文本框中,此处是为了让面板能够监听到键盘输入事件 22 23 this.addKeyListener(this); //在当前窗口监听键盘事件 24 25 this.addWindowListener(new WindowAdapter(){ 26 public void windowClosed(WindowEvent e){ 27 System.exit(0); 28 } 29 }); 30 } 31 @Override 32 public void keyPressed(KeyEvent arg0) { 33 int keyCode = arg0.getKeyCode(); 34 if (keyCode >= KeyEvent.VK_0 && keyCode <= KeyEvent.VK_9){ 35 num += String.valueOf(keyCode - 48); 36 isInt = true; 37 } 38 else if (keyCode == KeyEvent.VK_ENTER && isInt == true){ 39 int sum = 0; 40 for (int i=0;i<=Integer.valueOf(num);i++){ 41 sum = sum + i; 42 } 43 text.setText("1至"+ num +"的数列和为:" + String.valueOf(sum)); 44 //text.setText(num); 45 num = "";//此轮计算完毕,将num值归0 46 } 47 else if (keyCode == KeyEvent.VK_ENTER && isInt == false){ 48 num = ""; 49 text.setText("输入的内容非数字啦,请输入正确的数值并按回车键^_^"); 50 } 51 else { 52 isInt = false; 53 text.setText("输入的内容非数字啦,请输入正确的数值并按回车键^_^"); 54 } 55 } 56 57 @Override 58 public void keyReleased(KeyEvent arg0) {} 59 60 @Override 61 public void keyTyped(KeyEvent arg0) {} 62 63 }
来源:https://www.cnblogs.com/uzipi/p/5277511.html