Skip to content

Instantly share code, notes, and snippets.

@gagern
Created May 11, 2016 07:19
Show Gist options
  • Select an option

  • Save gagern/9bb02e893d534691350920556aa1dc7d to your computer and use it in GitHub Desktop.

Select an option

Save gagern/9bb02e893d534691350920556aa1dc7d to your computer and use it in GitHub Desktop.
Dump KeyEvents from a JTextPane
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
class EventDump extends KeyAdapter {
public static void main(String[] args) {
new EventDump();
}
Document doc;
EventDump() {
JFrame frm = new JFrame("Event dump");
JTextPane edit = new JTextPane();
edit.setText("Type here\n");
edit.setCaretPosition(edit.getText().length());
edit.setPreferredSize(new Dimension(600, 400));
edit.addKeyListener(this);
JTextArea log = new JTextArea(15, 20);
log.setEditable(false);
//log.setPreferredSize(new Dimension(600, 200));
try {
log.setFont(new Font("Monospaced", 0, 12));
} catch (Exception e) {
}
doc = log.getDocument();
JScrollPane scroll = new JScrollPane(log);
frm.getContentPane().add(BorderLayout.CENTER, edit);
frm.getContentPane().add(BorderLayout.SOUTH, scroll);
frm.pack();
frm.setLocationByPlatform(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);
}
@Override public void keyTyped(KeyEvent e) {
String str = fmt("typed", e);
try {
doc.insertString(doc.getLength(), str, null);
} catch (BadLocationException err) {
err.printStackTrace();
}
}
@Override public void keyPressed(KeyEvent e) {
String str = fmt("pressed", e);
try {
doc.insertString(doc.getLength(), str, null);
} catch (BadLocationException err) {
err.printStackTrace();
}
}
@Override public void keyReleased(KeyEvent e) {
String str = fmt("released", e);
try {
doc.insertString(doc.getLength(), str, null);
} catch (BadLocationException err) {
err.printStackTrace();
}
}
private String fmt(String name, KeyEvent e) {
int chr = e.getKeyChar();
if (e.getKeyCode() == 0 && e.getExtendedKeyCode() == 0)
return String.format("%8s char=0x%04x\n", name, chr);
if (e.getKeyCode() == 0)
return String.format
("%8s char=0x%04x code=0 extended=0x%04x\n",
name, chr,
e.getExtendedKeyCode());
return String.format
("%8s char=0x%04x code=0x%04x=%s extended=0x%04x\n",
name, chr,
e.getKeyCode(),
KeyEvent.getKeyText(e.getKeyCode()),
e.getExtendedKeyCode());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment