在SWT微调器(或者某些其他类似的SWT小部件)上,如何强制用户使用UI按钮而不是编辑键盘上的文本。感谢。
答案 0 :(得分:1)
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
值的唯一方法是使用按钮。