JTextPane получил следующее значение до завершения метода keyReleased

У меня есть JTextPane, который связан с событием KeyReleased. Моя цель состоит в том, что любой пользователь, набранный в этой TextPane, напечатает какой-то символ.

{'I', 'N', 'V', 'A', 'L', 'I', 'D'};

Над символом выводится каждое событие keyReleased. Если пользователь нажал any character, то JTextPane показывает 'I' после того, как следующее событие показывает 'N' аналогично.

Если я нажимал один за другим, он работал правильно. Но моя проблема в том, что если я быстро печатал, я получал напечатанный символ.

Как я могу скрыть эти символы?

Код события KeyPressedEvent:

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);
  }
} 

Ваше здоровье..


person Dhinakar    schedule 11.10.2012    source источник


Ответы (1)


Моя цель состоит в том, что любой пользователь, набранный в этой TextPane, напечатает какой-то символ.

  • используйте DocumentFilter и/или (для {'I', 'N', 'V', 'A', 'L', 'I', 'D;}) с Pattern
person mKorbel    schedule 11.10.2012
comment
Я. Это то, что мне нужно для моего решения. Попробую это. - person Dhinakar; 11.10.2012