java - SWT Spinner - 禁用键盘编辑

标签 java swt spinner

在 SWT 微调器(或者其他类似的 SWT 小部件)上,如何强制用户使用 UI 按钮而不是从键盘编辑文本。谢谢。

最佳答案

SWT.READ_ONLY 将阻止用户输入值。要同时禁用箭头键,您可以执行以下操作:

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();
    }
}

这将确保更改 Spinner 值的唯一方法是使用按钮。

关于java - SWT Spinner - 禁用键盘编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23972045/

相关文章:

android - 像微调器一样的 iOS

android - 如何获取对象的字符串值而不是对象值?

java - 在 Swing 中将 StyleConstants.setFirstLineIndent 设置为负数后文本模糊

java - 康威的生命游戏调试 (Java)

java - JFace 表格查看器 : Make cell background-color blink

java - SWT Table, TableViewer, 数据变化刷新表

java - 如何在SWT中设置最大复合尺寸

android - 如何更改微调器的标题

java - 如何用java删除图像中的白色像素

java - 从 Java 项目的 Docker 镜像运行集成测试