Disable copy paste functionality on JTextFieldTag(s): Swing


import java.awt.event.KeyEvent;
import java.awt.event.InputEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.text.DefaultEditorKit;
import javax.swing.text.JTextComponent;
import javax.swing.text.Keymap;

public class Test {
  
  private JFrame myFrame;
  private JTextField myTextField;
  
  public  void doit() {
    myFrame = new JFrame("no cut and paste");
    myFrame.setSize(400, 200);
    myFrame.setLocation(100, 100);
    myFrame.setLayout(new java.awt.FlowLayout());
    myTextField = new JTextField(20);
    
    JTextComponent.KeyBinding[] newBindings = {
        new JTextComponent.KeyBinding(
          KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK),
          DefaultEditorKit.beepAction),
        new JTextComponent.KeyBinding(
          KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK),
          DefaultEditorKit.beepAction),
        new JTextComponent.KeyBinding(
            KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK),
            DefaultEditorKit.beepAction)
      };
            
    Keymap k = myTextField.getKeymap();
    JTextComponent.loadKeymap(k, newBindings, myTextField.getActions());
    
    myFrame.add(myTextField);
      myFrame.addWindowListener( new WindowAdapter() {
        public void windowOpened( WindowEvent e ){
          myTextField.requestFocus();
       }  
      public void windowActivated( WindowEvent e ){
        boolean focus = myTextField.requestFocusInWindow();
        if(focus){
          System.out.println("Focus successful");
        } 
        else{
          System.out.println("Focus unsuccessful");
        }
      }
     }
    );
    myFrame.setVisible(true);  
  }
  
  public static void main(String args[]) {
    new Test().doit();
  }
}

blog comments powered by Disqus