在JFrame里编写一个Panel,在panel上添加KeyListener,统计出敲击键盘a到z的次数,实时显示到控制台。要求JFrame的名字为自己的班级加名字。
时间: 2024-02-28 11:57:00 浏览: 21
好的,我可以帮你解决这个问题。
首先,我们需要创建一个继承自JPanel的自定义面板类,用于监听键盘事件并统计字母出现次数。代码如下:
```java
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
public class MyPanel extends JPanel implements KeyListener {
private int[] count = new int[26]; // 存储字母出现次数
public MyPanel() {
addKeyListener(this); // 添加键盘事件监听器
setFocusable(true); // 让面板获得焦点,才能接收键盘事件
}
@Override
public void keyPressed(KeyEvent e) {
char ch = e.getKeyChar();
if (ch >= 'a' && ch <= 'z') { // 判断是否为小写字母
count[ch - 'a']++; // 统计字母出现次数
System.out.println((char) (ch - 32) + ": " + count[ch - 'a']); // 显示到控制台
}
}
@Override
public void keyReleased(KeyEvent e) {}
@Override
public void keyTyped(KeyEvent e) {}
}
```
接下来,我们需要在主方法中创建一个JFrame,并把自定义面板添加到其中。代码如下:
```java
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("班级名字的JFrame"); // 设置JFrame的名字
MyPanel panel = new MyPanel(); // 创建自定义面板
frame.add(panel); // 把面板添加到JFrame中
frame.setSize(400, 400); // 设置JFrame的大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置JFrame关闭时退出程序
frame.setVisible(true); // 显示JFrame
}
}
```
现在你可以运行程序,敲击键盘上的字母a到z,就能在控制台上看到字母出现的次数了。注意,要让自定义面板接收键盘事件,必须让它获得焦点,可以通过单击面板或者调用`requestFocus()`方法来实现。