Overriding a Few Default Typed Key Bindings in a JTextComponent : JTextComponent « Swing JFC « Java






Overriding a Few Default Typed Key Bindings in a JTextComponent

  
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JComponent;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.text.BadLocationException;
import javax.swing.text.JTextComponent;

public class Main {
  public static void main(String[] argv) throws Exception {
    JTextField component = new JTextField(10);

    // Override letter a
    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("typed a"),"actionName");

    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(new Character(' '), 0), "actionName");

    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("typed X"), "none");

    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("shift pressed SPACE"), "actionName");

    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(new Character(' '), 0), "none");

    MyAction action  = new MyAction();
    
    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("pressed SPACE"),action.getValue(Action.NAME));

    component.getActionMap().put(action.getValue(Action.NAME), action);
  }
}
class MyAction extends AbstractAction{
  public MyAction(){
    super("Insert Space");
  }
  public void actionPerformed(ActionEvent evt) {
    JTextComponent c = (JTextComponent) evt.getSource();

    try {
      c.getDocument().insertString(c.getCaretPosition(), " ", null);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

   
    
  








Related examples in the same category

1.Creating a Custom Editing Command for a JTextComponent
2.Listing the Key Bindings in a JTextComponent Keymap
3.Listening for Caret Movement Events in a JTextComponent
4.Listening for Editing Changes in a JTextComponent
5.Modifying Text in a JTextComponent: Insert some text at the beginning
6.Modifying Text in a JTextComponent: Insert some text after the 5th character
7.Modifying Text in a JTextComponent: Append some text
8.Modifying Text in a JTextComponent: Delete the first 5 characters
9.Modifying Text in a JTextComponent: Replace the first 3 characters with some text
10.Using a Position in a JTextComponent
11.Limiting the Capacity of a JTextComponent
12.Enabling Text-Dragging on a JTextComponent
13.Sharing a Document Between JTextComponents
14.Enumerating All the Views in a JTextComponent
15.Moving the Caret of a JTextComponent
16.Setting the Blink Rate of a JTextComponent's Caret
17.Using the Selection of a JTextComponent
18.Get the first 3 characters
19.Get the last 3 characters
20.Filter all editing operations on a text component
21.Remove Highlighting in a JTextComponent
22.Highlight a word in JTextComponent
23.Replace selected text
24.Set the color of text inside the selection
25.Better way to set the selection
26.Get value from JTextCompnent and convert it to upper case
27.Set the color behind the selected text