В Java, когда клавиша, например буква, нажата, как я могу предотвратить вывод этой клавиши буквы, назначенной jTextPane? - PullRequest
1 голос
/ 15 февраля 2011

В Java, когда нажимается клавиша, такая как буква, как мне запретить выводить клавишу, которая назначена jTextPane?(Подобно тому, как разработчики игр подавляют обычные функции клавиатуры, когда часть их приложения находится в фокусе).

Когда KeyEvent.consume () не выполняет работу в одиночку, есть ли другой способ?

Я довольно начинающий программист по сравнению с другими людьми на этой доске, поэтому, пожалуйста, будьте терпеливы со мной.Любые примеры будут оценены.Я стремлюсь учиться.Большое спасибо.

Ответы [ 2 ]

5 голосов
/ 15 февраля 2011

Назначение пользовательского DocumentFilter для документа из JTextPane.Вы можете перехватить insertString () и пропустить ненужный ввод.Лучше, чем ключевой слушатель, если вы также пропустите те же символы из вставленного содержимого.

0 голосов
/ 15 февраля 2011

Этот код является просто примером, я надеюсь, что это предотвратит ввод от А до Я, но не охватывает все сценарии, такие как нажатия Shift, Ctrl и Alt.

JTextPane textPane = new JTextPane();
textPane.addKeyListener(new MyKeyListener());

public class MyKeyListener extends KeyAdapter
{
  public void keyPressed(KeyEvent key) {
    int i = key.getKeyCode();
    if (i >= 65 && i <= 90)
    {
       ((JTextPane)event.getSource()).cancelKey();
    }
  }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...