简体   繁体   English

SWT微调器-禁用键盘编辑

[英]SWT Spinner - Disabling Keyboard Editing

On SWT spinner (or maybe some other similar SWT widget), how can I force the user to use the UI buttons instead of edit the text from the keyboard. 在SWT微调器(或其他一些类似的SWT小部件)上,如何强制用户使用UI按钮而不是编辑键盘上的文本。 thanks. 谢谢。

SWT.READ_ONLY will prevent the user from entering values. SWT.READ_ONLY将阻止用户输入值。 To disable arrow keys as well, you can do something like this: 要同时禁用箭头键,您可以执行以下操作:

public static void main(String args[])
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    shell.setLayout(new FillLayout());

    Spinner spinner = new Spinner(shell, SWT.READ_ONLY);
    spinner.addListener(SWT.Verify, new Listener()
    {
        @Override
        public void handleEvent(Event e)
        {
            if(e.keyCode == SWT.ARROW_UP || e.keyCode == SWT.ARROW_DOWN)
            {
                e.doit = false;
            }
        }
    });

    shell.pack();
    shell.setSize(100, shell.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
    shell.open();

    while (!shell.isDisposed())
    {
        if (!shell.getDisplay().readAndDispatch())
            shell.getDisplay().sleep();
    }
}

This will make sure that the only way to change the Spinner value is using the buttons. 这将确保更改Spinner值的唯一方法是使用按钮。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM