小编cci*_*cit的帖子

带有透明度的java全屏窗口

我正在尝试使用Java创建一个覆盖整个屏幕的全屏窗口.此窗口还必须具有一定的透明度(约30%-50%透明).在说整个屏幕时,我的意思是它涵盖了所有内容(包括OSX/Linux/Windows中的dock/taskbar/menubar),当我说透明时,我的意思是实时透明,而不仅仅是黑客截图.以下是我所知道的/尝试过的:

  • 使用Java全屏API:虽然它创建了一个真正的全屏,但你不能使用它(只有不透明的颜色).一个黑客是截取整个桌面的截图并将其设置为窗口的背景,但这意味着它不是实时透明度.
  • 设置窗口大小以匹配屏幕尺寸:当它填满整个屏幕时,在某些操作系统(例如Mac OS X)中,窗口将呈现在dock/menubar后面,而不是在它上面.但是,透明度在这里起作用.
  • 使用setWindowOpacity API:它适用于第二种情况,但不适用于第一种情况(Fullscreen API)
  • 将setBackground与alpha一起使用:它的工作方式与setWindowOpacity类似,但仅限于某些操作系统.但也不适用于Fullscreen API.
  • 使用JFrame/JWindow/JDialog/Frame/Window:尝试了每个窗口模型,没有任何运气

所以我想通过另一个我不知道的黑客来判断这是否可行,那么我很乐意听到.

目标是在桌面上叠加半透明全屏.

java swing transparency fullscreen jframe

8
推荐指数
1
解决办法
3534
查看次数

java整数到字节,以及字节到整数

我知道 - 在Java-int中是4个字节.但我希望将int转换为n字节数组,其中n可以是1,2,3或4个字节.我想把它作为有符号的字节/字节,所以如果我需要将它们转换回int(事件,如果它是1个字节),我得到相同的signed int.我完全清楚从int转换为3或更低字节时精度损失的可能性.

我设法将int转换为n字节,但将其转换回负数会产生无符号结果.

编辑:

int到bytes(参数n指定所需的字节数1,2,3或4,无论可能的进动丢失)

public static byte[] intToBytes(int x, int n) {
    byte[] bytes = new byte[n];
    for (int i = 0; i < n; i++, x >>>= 8)
        bytes[i] = (byte) (x & 0xFF);
    return bytes;
}
Run Code Online (Sandbox Code Playgroud)

bytes到int(不管1,2,3或4的字节数)

public static int bytesToInt(byte[] x) {
    int value = 0;
    for(int i = 0; i < x.length; i++)
        value += ((long) x[i] & 0xffL) << (8 * i);
    return value;
}
Run Code Online (Sandbox Code Playgroud)

字节到int转换器可能存在问题.

java int byte

5
推荐指数
2
解决办法
3万
查看次数

标签 统计

java ×2

byte ×1

fullscreen ×1

int ×1

jframe ×1

swing ×1

transparency ×1