Java Color(int rgba) 构造函数和 int 溢出

标签 java colors int awt

根据docs ,这个构造函数存在:

public Color(int rgba,
         boolean hasalpha)

鉴于 java 没有无符号整数,我不知道如何使用它来创建与 Color(255,255,255,255) 等效的内容(例如 0xFFFFFFFF) 。

如何使用此构造函数来实现“大”颜色?

编辑

显然可以使用构造函数(令人惊讶),但是像这样解析 RGBa 颜色字符串会失败:

    int x = Integer.parseInt("0xFFFFFFFF", 16); // Number format error
    Color c = new Color(x, true);

解决方案似乎是使用 BigInteger 进行解析。抱歉问题问错了!

最佳答案

你的问题没有误导,但你似乎误解了Kon的回答:

关于 Java 的 Integer 始终被签名的说法是正确的,但这并不意味着该数字中的信息量较少。

当您创建颜色时:

new Color(255, 255, 255, 255)

它与使用相同:

new Color(0xFFFFFFFF, true)

或使用:

new Color(0b11111111111111111111111111111111, true)

0xFFFFFFFF 实际上是 -1,但这并不意味着任何位发生变化;这只是一个代表性问题。 Color 只是为每个颜色分量剪掉必要的位。

实际上,您可以使用以下方法创建所需的颜色:

Color c = new Color(-1,true);
System.out.println(c);
System.out.println(c.getAlpha());

产生:

java.awt.Color[r=255,g=255,b=255]
255

关于Java Color(int rgba) 构造函数和 int 溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245175/

相关文章:

java - 如何确保客户端崩溃时 JMS 消息重新传递

css - Colorize或Color Highlight在Visual Studio Code中不起作用

.net - 我的应用程序将所有 "1"数字变成红色,就像巫术一样

将十六进制字符串 (char []) 转换为 int?

objective-c - 为什么我的 NSString to int 在 Objective C 中是错误的?

java - 我的扫描仪不断收到错误 "cannot find symbol"

java - onAttach 中无法初始化接口(interface)对象?

java - 在 Java Swing 中围绕 <span> 放置表格边框

java - 如何在 map-reduce 中读取多个图像文件作为 hdfs 的输入?

c# - SolidBrush Color 仅以灰度返回