Hallo,
ich habe eine JTable mit einem eigenenen Editor (tableEditor extends AbstractCellEditor implements TableCellEditor).
In den einzelnen Zellen habe ich JTextAreas angelegt. Soweit so gut, mit der Tabelle ist alles OK. Nun möchte ich auf bestimmte Tastenkombinationen reagieren. Dies sind einmal CTRL+t und CTRL+e. Aber egal was ich mache, es funktioniert ausschließlich CTRL+t. Ich habe auch andere Tasten als "e" versucht. r, s, egal. Es funktioniert nicht.
[CODE lang="java" title="Ausschnitt aus public Component getTableCellEditorComponent ..."] Action ctrl_e_action = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("gedrückt wurdeCTRL+e");
}
};
Action ctrl_t_action = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("gedrückt wurde CTRL+t");
}
};
InputMap im_textArea = textArea.getInputMap(JTextArea.WHEN_FOCUSED);
ActionMap am_textArea = textArea.getActionMap();
KeyStroke ctrl_t = KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.CTRL_DOWN_MASK);
am_textArea.put(im_textArea.get(ctrl_t), ctrl_t_action);
KeyStroke ctrl_e = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_DOWN_MASK);
am_textArea.put(im_textArea.get(ctrl_e), ctrl_e_action);[/CODE]
Also die Ausgabe von "gedrückt wurde CTRL+t" funktioniert immer. Alles andere nicht.
Hat jemand einen Tipp?
ich habe eine JTable mit einem eigenenen Editor (tableEditor extends AbstractCellEditor implements TableCellEditor).
In den einzelnen Zellen habe ich JTextAreas angelegt. Soweit so gut, mit der Tabelle ist alles OK. Nun möchte ich auf bestimmte Tastenkombinationen reagieren. Dies sind einmal CTRL+t und CTRL+e. Aber egal was ich mache, es funktioniert ausschließlich CTRL+t. Ich habe auch andere Tasten als "e" versucht. r, s, egal. Es funktioniert nicht.
[CODE lang="java" title="Ausschnitt aus public Component getTableCellEditorComponent ..."] Action ctrl_e_action = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("gedrückt wurdeCTRL+e");
}
};
Action ctrl_t_action = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("gedrückt wurde CTRL+t");
}
};
InputMap im_textArea = textArea.getInputMap(JTextArea.WHEN_FOCUSED);
ActionMap am_textArea = textArea.getActionMap();
KeyStroke ctrl_t = KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.CTRL_DOWN_MASK);
am_textArea.put(im_textArea.get(ctrl_t), ctrl_t_action);
KeyStroke ctrl_e = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_DOWN_MASK);
am_textArea.put(im_textArea.get(ctrl_e), ctrl_e_action);[/CODE]
Also die Ausgabe von "gedrückt wurde CTRL+t" funktioniert immer. Alles andere nicht.
Hat jemand einen Tipp?