java - SWT按钮: setSelection(true) not working if SWT. READ_ONLY

标签 java eclipse button widget swt

我有一个 SWT.TOGGLE 按钮矩阵,它们代表我的应用程序上的一些切换激活器。

这个想法是,如果它们存储为激活状态,则将它们显示为切换(按下),但要 SWT.READ_ONLY 因为此屏幕仅具有显示目的,并且必须是非交互的。

问题是,如果我将 SWT.READ_ONLY 添加到按钮,则 setSelection(true) 不起作用,并且我调用的所有按钮 setSelection(true) 显示为未切换。

我们该如何处理这个问题?

Button button = new Button(column, SWT.TOGGLE | SWT.READ_ONLY);
button.setSelection(true);

最佳答案

SWT.READ_ONLY不是 Button 的有效样式,通过指定它您将得到未定义的行为。您只能对单个控件使用 Javdoc 中列出的样式。

在SWT当前的实现中SWT.READ_ONLYSWT.PUSH 具有相同的值所以你正在有效地使用 SWT.TOGGLE | SWT.PUSH这是明确禁止的。实现可能是选择实现SWT.PUSH这就是为什么setSelection不起作用。

停止按钮事件的唯一方法是 setEnabled(false)但这会使该值变灰。

所以您可能想使用其他方式来显示这些设置。

关于java - SWT按钮: setSelection(true) not working if SWT. READ_ONLY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53237297/

相关文章:

java - 如何使用 richfaces 对数据表进行排序

java - 如何查看java程序的运行时间?

java - String.split更多正则表达式字符

java - 如何让我的 JButton 与我的 JFrame 连接?

javascript - 在 JavaScript 中绑定(bind) onclick 而无需在 HTML 文件中直接使用 JS

java - reduce()方法中键的输入顺序是什么

java - eclipse 使用变量指定 jars 路径创建用户库

java - 无法执行maven模块java类

javascript - 设置提交按钮的延迟; ID。单击后按钮灰色并禁用 x 秒

button - android中按钮下方的文字