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