I have an app that is written in Swing, awt. I want to prevent users from pasting values into the textfields. is there any way to do this without using action listeners?
Disabling 'paste' in a jTextfield
Asked Answered
You can just call setTransferHandler with a null parameter like this:
textComponent.setTransferHandler(null);
This will disable all copy/paste actions on the field.
Thanks, in my case I need to enable the paste of an image file or print screen. –
Lorentz
The best way is to remove action associated with CTRL+V keystroke in components ActionMap.
The simplest way it to say: textComponent.setEditable(false);
This disables cut & paste, but copy is still enabled.
True story, I have a text component where isEditable() returns false, but TransferAction still lets you paste into it. Pressing Ctrl-V is disabled, but if you have a Paste action in the main menu which is hooked up to the relevant component's transfer action, people will still be able to paste. –
Tinstone
@Trejkaz hmm .. haven't seen such misbehaviour since ages (early swing versions did), and can't reproduce it right now. –
Salzburg
Might have been fixed in the past few months. –
Tinstone
public class PastlessJTextField extends JTextField {
public PastlessJTextField() {
super();
}
public PastlessJTextField( int columns ){
super( columns );
}
@Override
public void paste() {
// do nothing
}
}
You may be able to override the paste()
method in JTextComponent
.
© 2022 - 2024 — McMap. All rights reserved.