Java JTextPane在keyReleased方法结束前获得下一个值

Java JTextPane在keyReleased方法结束前获得下一个值,java,swing,keylistener,jtextpane,documentfilter,Java,Swing,Keylistener,Jtextpane,Documentfilter,我有一个JTextPane,它与KeyReleased事件绑定。我的目标是不管怎样 用户在文本窗格中键入,它将打印一些字符 {'I', 'N', 'V', 'A', 'L', 'I', 'D'}; 上面的字符打印每个按键释放事件。如果用户按了任何字符,则JTextPane在下一个事件显示'N'后显示'I' 如果我一个接一个地按,它就会正常工作。但我的问题是,如果我打字很快,我就得到了输入的字符 {'I', 'N', 'V', 'A', 'L', 'I', 'D'}; 如何隐藏这些字符 按键事

我有一个JTextPane,它与KeyReleased事件绑定。我的目标是不管怎样 用户在文本窗格中键入,它将打印一些字符

{'I', 'N', 'V', 'A', 'L', 'I', 'D'};
上面的字符打印每个按键释放事件。如果用户按了
任何字符
,则JTextPane在下一个事件显示'N'后显示
'I'

如果我一个接一个地按,它就会正常工作。但我的问题是,如果我打字很快,我就得到了输入的字符

{'I', 'N', 'V', 'A', 'L', 'I', 'D'};
如何隐藏这些字符

按键事件代码:

fooString
是包含13个字符的字符数组

count++; //count of event
if(evt.getKeyCode() == KeyEvent.VK_ESCAPE)
{
  int option = JOptionPane.showConfirmDialog(this, "Do you want to exit");
  if(option == JOptionPane.YES_OPTION)
  {
    System.exit(0);
  }
}
else if(evt.getKeyCode() == KeyEvent.VK_BACK_SPACE)
{
  if(this.txtPane.getText().length() != 0)
  count--;
}
else
{
  /*Get the value and show fooString value */
  try {
    String val = this.txtPane.getText();
    int rem = count % fooString.length;
    //System.out.println(val.substring(0, val.length()-1));
    txtPane.setText(val.substring(count-1, val.length()-1));
    if(rem == 0)
    rem = foolString.length;
    if(count % 26 == 0)
    {
      txtPane.setText(val.substring(0, val.length()-1) 
          + fooString[rem-1] +"\n");
      lineCount++;
      count = 0;
    }
    else
    txtPane.setText(val.substring(0, val.length()-1) + fooString[rem-1]);
  } catch (Exception ex) {
    Logger.getLogger(A.class.getName()).log(Level.SEVERE, null, ex);
  }
} 
干杯
  • 不要将其用于

  • 使用

  • 我的目标是,无论用户在文本窗格中键入什么,它都会打印出来 一些性格

    {'I', 'N', 'V', 'A', 'L', 'I', 'D'};
    
    • 模式一起使用和/或(对于
      {'I','N','V','A','L','I','D;}

    Ya。这就是我的解决方案所需要的。我要试试这个。