У меня есть приложение, написанное на Swing, AWT. Я хочу запретить пользователям вставлять значения в текстовые поля. Есть ли способ сделать это без использования слушателей действий?
Вы можете просто вызвать setTransferHandler с нулевым параметром, например так:
textComponent.setTransferHandler(null);
Это отключит все действия копирования / вставки в поле.
Лучший способ - удалить действие, связанное с сочетанием клавиш CTRL + V, в компонентах ActionMap.
Проще всего сказать: textComponent.setEditable(false);
textComponent.setEditable(false);
Это отключает вырезание и вставку, но копирование все еще включено.
public class PastlessJTextField extends JTextField { public PastlessJTextField() { super(); } public PastlessJTextField( int columns ){ super( columns ); } @Override public void paste() { // do nothing } }
Вы можете переопределить метод paste() в JTextComponent.
paste()
JTextComponent