在 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/