JTextArea: getKeymap() : JTextArea « javax.swing « Java by API






JTextArea: getKeymap()

 
import javax.swing.*;
import javax.swing.text.*;
import java.util.Hashtable;
import java.awt.event.*;
import java.awt.BorderLayout;

public class KeymapExample {
  public static void main(String[] args) {
    JTextArea area = new JTextArea(6, 32);
    Keymap parent = area.getKeymap();
    Keymap newmap = JTextComponent.addKeymap("KeymapExampleMap", parent);

    KeyStroke u = KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_MASK);
    Action actionU = new UpWord(); 
    newmap.addActionForKeyStroke(u, actionU);

    Action actionList[] = area.getActions();
    Hashtable lookup = new Hashtable();
    for (int j=0; j < actionList.length; j+=1)
      lookup.put(actionList[j].getValue(Action.NAME), actionList[j]);

    KeyStroke L = KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_MASK);
    Action actionL = (Action)lookup.get(DefaultEditorKit.selectLineAction);
    newmap.addActionForKeyStroke(L, actionL);

    KeyStroke W = KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_MASK);
    Action actionW = (Action)lookup.get(DefaultEditorKit.selectWordAction);
    newmap.addActionForKeyStroke(W, actionW);

    area.setKeymap(newmap);

    JFrame f = new JFrame("KeymapExample");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(new JScrollPane(area), BorderLayout.CENTER);
    area.setText("www.\n java2s \n .com.");
    f.pack();
    f.setVisible(true);
  }
  public static class UpWord extends TextAction {
    public UpWord() {
      super("uppercase-word-action");
    }

    public void actionPerformed(ActionEvent e) {
      JTextComponent comp = getTextComponent(e);
      if (comp == null) return;
      Document doc = comp.getDocument();
      int start = comp.getSelectionStart();
      int end = comp.getSelectionEnd();
      try {
        int left = javax.swing.text.Utilities.getWordStart(comp, start);
        int right = javax.swing.text.Utilities.getWordEnd(comp, end);
        String word = doc.getText(left, right-left);
        doc.remove(left, right-left);
        doc.insertString(left, word.toUpperCase(), null);
        comp.setSelectionStart(start); // restore previous position/selection
        comp.setSelectionEnd(end);
      } catch (BadLocationException ble) { return; }
    }
  }
}

           
         
  








Related examples in the same category

1.new JTextArea(Document document)
2.new JTextArea(String text)
3.new JTextArea(String text, int rows, int columns)
4.JTextArea: addCaretListener(CaretListener listener)
5.JTextArea: addUndoableEditListener(UndoableEditListener lis)
6.JTextArea: append(String str)
7.JTextArea: getActionMap()
8.JTextArea: getActions()
9.JTextArea: getCaretPosition()
10.JTextArea: getDocument()
11.JTextArea: getFont()
12.JTextArea: getHighlighter()
13.JTextArea: getLineCount()
14.JTextArea: getLineEndOffset(int line)
15.JTextArea.getLineOfOffset(int offset)
16.JTextArea: getLineStartOffset(int line)
17.JTextArea: insert(String str, int pos)
18.JTextArea: isManagingFocus()
19.JTextArea: paste()
20.JTextArea: read(Reader in, Object desc)
21.JTextArea: replaceRange(String str, int start, int end)
22.JTextArea: setCaretColor(Color c)
23.JTextField: setHorizontalAlignment(int pos)
24.JTextArea: setLineWrap(boolean wrap)
25.JTextArea: setTabSize(int size)
26.JTextArea: setWrapStyleWord(boolean word)
27.JTextArea: write(Writer out)