java - 如何根据一些变量在 Widget 上应用各种样式?
问题描述
我想根据变量在 Text 小部件中应用水平滚动。
我是这样做的:
int style = (SWT.BORDER | SWT.V_SCROLL | SWT.CANCEL | SWT.MULTI);
if (!editable) {
style = (style | SWT.READ_ONLY);
}
if (horizontalScroll) {
style = (style | SWT.H_SCROLL);
}
text = new Text(composite, style);
问题是即使水平滚动布尔值为假,水平滚动也始终存在。是不是这样做的正确方法?
解决方案
SWT.CANCEL 不是 SWT Text 小部件支持的样式。
在这种情况下你很不幸,因为 SWT.CANCEL 值等于 SWT.H_SCROLL 所以通过添加取消样式实际上是在添加水平滚动。
SWT Text Widget 支持的样式:CENTER、ICON_CANCEL、ICON_SEARCH、LEFT、MULTI、PASSWORD、SEARCH、SINGLE、RIGHT、READ_ONLY、WRAP。
继承支持的样式:H_SCROLL、V_SCROLL、BORDER、LEFT_TO_RIGHT、RIGHT_TO_LEFT、FLIP_TEXT_DIRECTION
并且您应该检查某些样式不能一起使用的某些规则(例如 SWT.SINGLE 和 SWT.MULTI)。
推荐阅读
- angular - Angular 7 到 10 升级后访问损坏的父组件
- python - 如果存在于另一列或数组中,则提取文本值
- c++ - 这个算法是 BTree 构造的,O(n) 时间复杂度吗?
- sql - 用于存储测试结果的长数据列表的 SQL 表结构
- html - 链接装饰正在影响我的固定导航栏
- r - 从全局环境中删除除几个项目之外的所有项目
- javascript - Angular 8 - 如何动态添加子路由
- python-3.x - 无法使用 pytesseract.image_to_string 识别单词
- r - R使用带有可变列标题的 distinct()
- google-sheets - 制作 Google Form 以不断更新 Google Sheet 的第一行