【问题标题】:How to restore default keybindings (Ctrl+A, Ctrl+C, etc) for widgets in SWT?如何恢复 SWT 中小部件的默认键绑定(Ctrl+A、Ctrl+C 等)?
【发布时间】:2010-11-10 11:01:42
【问题描述】:

当我编辑一个文本字段并按 Ctrl + A 时,然后不是选择字段中的所有文本,而是主菜单的 Ctrl处理程序kbd> + A 被调用。

如何恢复默认行为,而不丢失菜单中的 Ctrl + A 加速键?

【问题讨论】:

    标签: java events swt keyboard-shortcuts


    【解决方案1】:

    Ctrl + A 使用以下 sn-p 在我的 WinXP 工作站上没有执行任何操作。所以没有“默认行为”:

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.*;
    
    public class Snippet22 {
    
       public static void main( String[] args ) {
          Display display = new Display();
          Shell shell = new Shell(display);
          Text text = new Text(shell, 0);
          text.setText("ASDF");
          text.setSize(64, 32);
          shell.pack();
          shell.open();
          while ( !shell.isDisposed() ) {
             if ( !display.readAndDispatch() ) display.sleep();
          }
          display.dispose();
       }
    }
    

    如果您希望 Ctrl + A 按预期工作,请添加这样的侦听器:

    Listener ctrlAListener = new Listener() {
       public void handleEvent( Event event ) {
          if ( event.stateMask == SWT.CTRL && event.keyCode == 'a' ) {
             ((Text)event.widget).selectAll();
          }
       }
    };
    

    并将其添加到您使用的每个 Text 实例中:

    text.addListener(SWT.KeyUp, ctrlAListener);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-28
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 2020-11-20
      • 2011-06-11
      相关资源
      最近更新 更多