首页 > 解决方案 > 如何根据一些变量在 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);

问题是即使水平滚动布尔值为假,水平滚动也始终存在。是不是这样做的正确方法?

标签: javaeclipsewidgetstylesswt

解决方案


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)。


推荐阅读