Здравствуйте, ElectricalStorm, Вы писали:
ES>Здравствуйте, Аноним, Вы писали:
А>>Интересно но при вводе '(' нажимается кнопка Down
А>>не знаю почему
А>>
А>>import javax.swing.*;
А>>import java.awt.*;
А>>import java.awt.event.ActionEvent;
А>>import java.awt.event.KeyEvent;
А>>public class Test extends JFrame {
А>> JPanel jPanel1 = new JPanel();
А>> JButton jButton5 = new JButton("UP");
А>> JButton jButton6 = new JButton("Down");
А>> JTextArea t1 = new JTextArea(5, 25);
А>> JScrollPane sp = new JScrollPane(t1);
А>> public Test() {
А>> t1.setFocusable(true);
А>> t1.setEditable(false);
А>> JComponent c = (JComponent) getContentPane();
А>> InputMap inputMap = c.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
А>> keyRegistry(c, inputMap, '(');
А>> keyRegistry(c, inputMap, KeyEvent.VK_UP, jButton5);
А>> keyRegistry(c, inputMap, KeyEvent.VK_DOWN, jButton6);
А>> jPanel1.add(sp);
А>> jPanel1.add(jButton5);
А>> jPanel1.add(jButton6);
А>> c.add(jPanel1, BorderLayout.CENTER);
А>> c.setFocusable(true);
А>> }
А>> public void keyRegistry(JComponent c1, InputMap inputMap1, char ch) {
А>> inputMap1.put(KeyStroke.getKeyStroke(ch), "alph" + (int) ch);
А>> c1.getActionMap().put("alph" + (int) ch, new MyAbstractAction1(ch));
А>> }
А>> public void keyRegistry(JComponent c1, InputMap inputMap1, int ch, JButton jb) {
А>> inputMap1.put(KeyStroke.getKeyStroke(ch, 0), "alph" + ch);
А>> c1.getActionMap().put("alph" + (int) ch, new MyAbstractAction(jb));
А>> }
А>> private class MyAbstractAction extends AbstractAction {
А>> private JButton jb;
А>> public MyAbstractAction(JButton jb) {
А>> this.jb = jb;
А>> }
А>> public void actionPerformed(ActionEvent e) {
А>> jb.doClick();
А>> }
А>> }
А>> private class MyAbstractAction1 extends AbstractAction {
А>> private char ch = ' ';
А>> public MyAbstractAction1(char ch) {
А>> this.ch = ch;
А>> }
А>> public void actionPerformed(ActionEvent e) {
А>> t1.append("" + (char) ch);
А>> }
А>> }
А>> public static void main(String args[]) {
А>> Test frame = new Test();
А>> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
А>> frame.setBounds(200, 200, 300, 200);
А>> frame.show();
А>> }
А>>}
А>>
ES>у них коды одинаковые
ES>import javax.swing.*;
ES>import java.awt.event.KeyEvent;
ES>public class PrintCode {
ES> public static void main(String[] args) {
ES> System.out.println('(' + ","
ES> + Integer.toHexString((int)'(') + ","
ES> + Integer.toHexString(KeyEvent.VK_DOWN) );
ES> }
ES>}
а как решить эту проблему ??