java - 当键盘输入与字母匹配时,使字母/数字消失

标签 java keyevent

使用 keyListener,当我按下键盘时,面板上匹配的字母/数字将会消失。我让程序运行,但似乎我的 keyListener 根本不起作用。请需要帮助。

 import javax.swing.*;
 import java.awt.event.*;
 import java.awt.*;
 import java.util.*;

public class KeyEventSample extends JPanel{
Random r = new Random();
private String[] keyChar ={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0" };
static int win_h=600;
static int win_w=800;

public KeyEventSample() {
    addKeyListener( new KeyAdapter(){             
     public void keyTyped(KeyEvent e){
        for(int q=0;q<keyChar.length;q++){
            if(String.valueOf(e.getKeyChar()).toLowerCase()==keyChar[q]){

                keyChar[q]=" ";
                repaint();
            }   
        }
     }
  });
}

public void paintComponent(Graphics g){
    super.paintComponent(g);
    for(int z=0;z<keyChar.length;z++){
        int x=r.nextInt(win_w-100);
        int y=r.nextInt(win_h-100);
        g.setFont(new Font("Arial", Font.PLAIN, 24));
        g.drawString(keyChar[z].toUpperCase(),x,y);
    }
}   

public static void main (String[] args) {
    KeyEventSample evnt = new KeyEventSample();
    JFrame frame = new JFrame("Key Event Example");
    frame.add(evnt);
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    frame.setSize(win_w,win_h);
    frame.setVisible(true);
 }          

}

最佳答案

试试这个,

if(String.valueOf(e.getKeyCode()).equalsIgnoreCase(keyChar[q]))

关于java - 当键盘输入与字母匹配时,使字母/数字消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17739520/

相关文章:

java - 默认情况下可以将字符串数组附加到 ListView 吗?

java - 如何解决 JPMS 和 OSGi Bundle for Eclipse plugin project an Tycho 之间的冲突

java - 阻止 Win+R 打开运行工具

c# - KeyEvent 没有检测到任何键 C#

java - SQLite:如何插入未完整填充列的文档?

java - Java中读取TIF图像的像素长宽比

java - 线条未出现在 JDesktopPane 上

python - 在 Python 中使用 Tkinter 进行关键事件处理

java - 为什么我的按键事件不起作用?

javascript - 如何使用 javascript 强制 "enter key"充当 "tab key"?