代码之家  ›  专栏  ›  技术社区  ›  NullPointerException

如何根据一些变量在小部件上应用各种样式?

  •  0
  • NullPointerException  · 技术社区  · 7 年前

    我想根据变量在文本小部件中应用水平滚动。

    我是这样做的:

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

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

    1 回复  |  直到 5 年前
        1
  •  2
  •   BogdanAdrian102    7 年前

    SWT.CANCEL不是SWT文本小部件支持的样式。

    在这种情况下,您是不幸运的,因为SWT.CANCEL值等于SWT.H_SCROLL,所以通过添加CANCEL样式,您实际上是在添加水平滚动。

    SWT文本小部件支持的样式:居中、图标取消、图标搜索、左、多、密码、搜索、单、右、只读、换行。

    继承支持的样式:H_滚动、V_滚动、边框、左_向右、右_向左、翻转_文本方向

    您应该检查是否有一些规则是某些样式不能同时使用的(例如SWT.SINGLE和SWT.MULTI)。

    推荐文章