Java 使用KeyListener时感到困惑';Swing中的3种方法?

Java 使用KeyListener时感到困惑';Swing中的3种方法?,java,awt,keylistener,japplet,keystroke,Java,Awt,Keylistener,Japplet,Keystroke,我正在尝试构建一个只能接受数字的textfield。我尝试了很多次,但我得到了3种方法的效果。 这三个方法同时调用,但所有方法都为getKeyCode()method返回不同的值。为什么这些方法返回不同的值?还有一件事,当我尝试向JApplet添加keyListener时,它不接受键值?为什么? import java.awt.event.*; import javax.swing.*; public class SimpleKey1 extends JApplet implements Ke

我正在尝试构建一个只能接受数字的
textfield
。我尝试了很多次,但我得到了3种方法的效果。 这三个方法同时调用,但所有方法都为
getKeyCode()
method返回不同的值。为什么这些方法返回不同的值?还有一件事,当我尝试向JApplet添加
keyListener
时,它不接受键值?为什么?

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

public class SimpleKey1 extends JApplet implements KeyListener
{
     String msg="";


     JTextField jTextField;
     int x = 10, y = 20; 

     public void init()
     {
         addKeyListener(this);

         requestFocus();
     }

     @Override
     public void keyPressed(KeyEvent arg0) {
        showStatus("Key Pressed");
     }

     @Override
     public void keyReleased(KeyEvent arg0) {
        showStatus("Key Released");
     }

     @Override
     public void keyTyped(KeyEvent arg0) {
         msg+=arg0.getKeyChar();
         repaint();
     }

     public void paint(Graphics g)
     {
         g.drawString(msg, x, y);
     }

}

改用
JFormattedTextField
,并提供只接受数字的格式。 没有必要为此编写这么多代码


位于的文档使用
JFormattedTextField
,并提供仅接受数字的格式。 没有必要为此编写这么多代码


“和另一件事…”上的文档您似乎把这个问答网站弄糊涂了。请将每个问答线程限制为一个问题(根据需要询问尽可能多的新线程)。为什么要编写小程序?如果是因为老师指定的原因,请让他们参考。@Andrew我不明白你在说什么?(根据需要询问尽可能多的新线程)这意味着什么?你能告诉我吗?告诉我怎么提问?我不了解这三种方法的行为?这3个方法同时调用某些键,有时只调用2个方法?你能给我解释一下这些方法的作用吗。顺便说一下,这个代码不是我老师指定的。这不是作业,我渴望学习这个问题的标题是“在Swing中使用KeyListener的3种方法时感到困惑?”…想象一下,如果有人能回答这个问题,但不是“.当我尝试将KeyListener添加到JApplet时,它不接受键值?为什么?”。他们应该试着回答这两个问题中的一个,还是完全忽略这一个,继续下一个问题,在那里他们可以回答所有“一”个问题?许多人不会费心去想它,而是直接进入下一个问题。此外,这是一个供其他人以后查找答案的可搜索资源。如果我在找。。。。问题“…当我尝试将keyListener添加到JApplet时,它不接受键值?为什么?”“为什么我要点击一个搜索结果来搜索一个题为“在Swing中使用KeyListener的3个方法时感到困惑”的问题呢?”它们不一样。这(问题和任何答案)就是我所说的“问题线索”。你可以问尽可能多的问题,所以把每个问题放在一个单独的主题上,给每个问题一个有意义的标题。“还有一件事……”你似乎把这个问答网站弄糊涂了。请将每个问答线程限制为一个问题(根据需要询问尽可能多的新线程)。为什么要编写小程序?如果是因为老师指定的原因,请让他们参考。@Andrew我不明白你在说什么?(根据需要询问尽可能多的新线程)这意味着什么?你能告诉我吗?告诉我怎么提问?我不了解这三种方法的行为?这3个方法同时调用某些键,有时只调用2个方法?你能给我解释一下这些方法的作用吗。顺便说一下,这个代码不是我老师指定的。这不是作业,我渴望学习这个问题的标题是“在Swing中使用KeyListener的3种方法时感到困惑?”…想象一下,如果有人能回答这个问题,但不是“.当我尝试将KeyListener添加到JApplet时,它不接受键值?为什么?”。他们应该试着回答这两个问题中的一个,还是完全忽略这一个,继续下一个问题,在那里他们可以回答所有“一”个问题?许多人不会费心去想它,而是直接进入下一个问题。此外,这是一个供其他人以后查找答案的可搜索资源。如果我在找。。。。问题“…当我尝试将keyListener添加到JApplet时,它不接受键值?为什么?”“为什么我要点击一个搜索结果来搜索一个题为“在Swing中使用KeyListener的3个方法时感到困惑”的问题呢?”它们不一样。这(问题和任何答案)就是我所说的“问题线索”。你可以问尽可能多的问题,所以把每个问题放在一个单独的线程中,给每个问题一个有意义的标题。我正在努力构建代码。你能解释一下这三种方法的表现吗?有时只有两种方法调用?有时3种方法调用?如何操作?当按住一个键时,
keyPressed
事件将被触发,如果您继续按住该键,
keyPressed
方法将被多次调用。释放键时,将调用
keyreased
方法。按下
和释放
的组合只不过是
键入的
。希望这能消除混淆。JFormattedTextField后面有一个代码。我正在努力构建代码。你能解释一下这三种方法的表现吗?有时只有两种方法调用?有时3种方法调用?如何操作?当按住一个键时,
keyPressed
事件将被触发,如果您继续按住该键,
keyPressed
方法将被多次调用。释放键时,将调用
keyreased
方法。按下
和释放
的组合只不过是
键入的
。希望这能消除困惑。