【Java】java.awt.event.KeyListener键盘事件监听练习

╄→гoц情女王★ 提交于 2020-02-20 02:47:29

 

 

 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 }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!