zoukankan      html  css  js  c++  java
  • e861. 在两个组件之间共享输入映射和事件映射

    By sharing an InputMap or ActionMap, any change to the shared InputMap or ActionMap will affect all components sharing the InputMap or ActionMap. WHEN_FOCUSED and WHEN_ANCESTOR_OF_FOCUSED_COMPONENT types of InputMaps can be shared. WHEN_IN_FOCUSED_WINDOW InputMaps cannot be shared.

        // Get an InputMap from the desired type of component and initialize it
        InputMap im = new JTextArea().getInputMap(JComponent.WHEN_FOCUSED);
        im.put(KeyStroke.getKeyStroke("F2"), "actionName");
        
        // Get an ActionMap from the desired type of component and initialize it
        ActionMap am =  new JTextArea().getActionMap();
        am.put("actionName",
            new AbstractAction("actionName") {
                public void actionPerformed(ActionEvent evt) {
                    process((JTextComponent)evt.getSource());
                }
            }
        );
        
        // Use the shared InputMap and ActionMap
        component1.setInputMap(JComponent.WHEN_FOCUSED, im);
        component2.setInputMap(JComponent.WHEN_FOCUSED, im);
        
        component1.setActionMap(am);
        component2.setActionMap(am);
        
        // Now, any change to the shared InputMap or ActionMap will affect both component1 and component2
        im.put(KeyStroke.getKeyStroke("F3"), "actionName2");
        am.put("actionName2",
            new AbstractAction("actionName2") {
                public void actionPerformed(ActionEvent evt) {
                    process((JTextComponent)evt.getSource());
                }
            }
        );
        
    
    Related Examples
  • 相关阅读:
    CentOS下MySQL的彻底卸载
    cent 7.0 安装mysql
    centos 安装mysql Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)
    使用注解配置SQL映射器
    bean
    转:最简日志打印规范
    快速搭建sonar代码质量管理平台
    (转)Where与Having的总结
    一个问题,日后会写为什么贴出来
    hive Tutorial
  • 原文地址:https://www.cnblogs.com/borter/p/9596221.html
Copyright © 2011-2022 走看看