-1

我最近在一个代码示例中看到了以下内容:

f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );

其中 f 是一个 JFrame。这个管道运算符是如何调用的,它是做什么的,我在哪里可以找到关于它的文档?

谢谢赫克托

4

4 回答 4

2

该“管道”实际上是按位包含的或。f.getExtendedState() 和 JFrame.MAXIMIZED_BOTH 可能是位域中的数字索引。使用“或”运算符将两者的属性组合为一个值。

于 2013-07-03T16:54:34.390 回答
0

|运算符是Java中的按位或运算符。

如果在任一操作数(或两者)中设置了相应位,则按位或的结果是其中设置了位的值。

此处,此操作使用JFrame.MAXIMIZED_BOTH(二进制,0000 0110)的值来确保倒数第二位和倒数第三位打开,一位用于水平,一位用于垂直。这使所有其他位f.getExtendedState()保持不变。

于 2013-07-03T16:52:53.940 回答
0

| 代表按位包含的 OR 运算符。在此处查看详细信息:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

于 2013-07-03T16:53:18.163 回答
0

管道 (|) 运算符只是按位或运算符。它将遍历两个数字的相应位,并且生成的数字将具有一个打开位,其中两个输入位中的任何一个都打开。在您给我们的情况下,运算符用于将标志添加到位域。

例如,如果您有一个 number flags,(比如说)是 4,它看起来像

00000100b

在二进制。如果你|用数字00010000b(16),结果是

00010100b,

其中包含原始标志(位位置 3)和新标志(位位置 5)。

于 2013-07-03T16:56:15.560 回答