Java - прослушивание системной безопасной команды вставки - PullRequest
2 голосов
/ 13 марта 2012

Мне нужно вызвать событие, когда пользователь вставляет текст в мою программу, в частности, JTextArea. Существует ли системно-независимый метод обнаружения команды вставки? Я искал вокруг, но не могу найти слушателя для этой цели. Я бы согласился на несистемный безопасный обходной путь, но я надеялся, что для этого найдется универсальный метод.

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Зачем слушать "пасты"? Почему бы просто не использовать DocumentListener, добавленный в PlainDocument, который является «моделью» JTextArea? Это уведомит вас о всех изменениях в документе независимо от источника. Если вы хотите предотвратить изменение документа во время прослушивания, используйте DocumentFilter. В любом случае, если это Swing GUI, вам, вероятно, вообще не следует использовать KeyListeners.

1 голос
/ 13 марта 2012

KeyEvent имеет постоянное значение с именем VK_PASTE, которое можно использовать внутри KeyListener#keyPressed(KeyEvent e):

public void keyPressed(KeyEvent e) {
  switch(e.getKeyCode()) {
    case KeyEvent.VK_PASTE:
      // do stuff when a paste occurs
  }
}

Есть также VK_CUT и VK_COPY, которые могут быть полезны. Все это также должно быть системно-независимым, в соответствии с документом.

...