在JFrame里编写一个Panel,在panel上添加KeyListener,统计出敲击键盘a到z的次数,实时显示到控制台。要求JFrame的名字为自己的班级加名字。
时间: 2024-02-13 16:01:24 浏览: 27
好的,我来给你讲解一下。
首先,我们需要创建一个JFrame窗口,并设置窗口的标题为“班级名字”。
```java
import javax.swing.*;
public class MyFrame extends JFrame {
public MyFrame() {
setTitle("班级名字");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame();
}
}
```
接下来,我们需要在窗口中添加一个Panel,并给Panel添加KeyListener。
```java
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class MyFrame extends JFrame {
private JPanel panel;
private int[] count = new int[26]; // 记录a到z的次数
public MyFrame() {
setTitle("班级名字");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setFocusable(true); // 让Panel获得键盘焦点
panel.addKeyListener(new MyKeyListener()); // 添加KeyListener
add(panel);
setVisible(true);
}
// 内部类,用于监听键盘事件
private class MyKeyListener implements KeyListener {
@Override
public void keyPressed(KeyEvent e) {
char c = e.getKeyChar();
if (c >= 'a' && c <= 'z') {
count[c - 'a']++;
System.out.println(c + " : " + count[c - 'a']);
}
}
@Override
public void keyTyped(KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e) {}
}
public static void main(String[] args) {
new MyFrame();
}
}
```
在MyKeyListener中,我们监听了键盘的keyPressed事件,并统计了a到z的次数。最后将统计结果输出到控制台。
注意,我们需要在Panel上调用setFocusable(true)方法,让Panel获得键盘焦点,才能监听到键盘事件。
希望我的回答能够帮到你,如果还有什么不清楚的地方可以继续提问哦!
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![java](https://img-home.csdnimg.cn/images/20210720083646.png)