Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据一些变量在小部件上应用各种样式?_Java_Eclipse_Widget_Styles_Swt - Fatal编程技术网

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

Java 如何根据一些变量在小部件上应用各种样式?,java,eclipse,widget,styles,swt,Java,Eclipse,Widget,Styles,Swt,我想根据变量在文本小部件中应用水平滚动 我是这样做的: 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); } tex

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

我是这样做的:

    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,水平滚动也始终存在。这不是正确的方法吗?

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

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

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

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


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

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

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

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

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


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

谢谢,那么@bogdanadrin102这是正确的方法吗?创建一个整数并使用更多值执行“|”?是的,我就是这样使用它们的。“|”是一个二进制或运算符,用于复制位(如果位存在于任一操作数中)。如果检查样式的整数基10值,它们都是2的幂(1,2,4,8,16,32,…),这意味着它们的基2表示形式只包含一个值位(00000001,00000010,00000100…)。谢谢,那么@BogdanAdrian102这是正确的方法吗?创建一个整数并使用更多值执行“|”?是的,我就是这样使用它们的。“|”是一个二进制或运算符,用于复制位(如果位存在于任一操作数中)。如果检查样式的整数基10值,则它们都是2的幂(1、2、4、8、16、32…),这意味着它们的基2表示形式只包含一个值位(00000001、00000010、00000100…)。