Java Couleur(int rgba) constructeur et int débordement
Selon la docs, ce constructeur existe:
public Color(int rgba,
boolean hasalpha)
Je ne suis pas à voir comment vous pouvez l'utiliser pour créer l'équivalent de Color(255,255,255,255)
(par exemple 0xFFFFFFFF
) étant donné que java n'a pas non signé ints, cependant.
Comment utiliser ce constructeur pour un "grand" de la couleur?
MODIFIER
À l'évidence, le constructeur peut être utilisé (surprise), mais l'analyse d'une couleur Rvba chaîne comme celle-ci échoue:
int x = Integer.parseInt("0xFFFFFFFF", 16); //Number format error
Color c = new Color(x, true);
La solution semble être d'utiliser BigInteger à faire de l'analyse syntaxique. Désolé pour le mal acheminés question!
Vous devez vous connecter pour publier un commentaire.
Votre question n'est pas mal acheminés, mais vous semblez avoir mal compris Kon réponse:
Vous avez raison à propos de Java Entier signé tous les temps, mais cela ne veut pas dire qu'il y a moins de bits d'information dans ce numéro.
Lorsque vous créez une Couleur:
c'est la même que l'utilisation de:
ou à l'aide de:
0xFFFFFFFF
est en fait-1
, mais cela ne signifie pas que l'un des bits de changement; C'est seulement une question de représentation. LeColor
coupe juste le nécessaire bits pour chaque composante de couleur.De sorte que vous pouvez, en fait, de créer la couleur de votre choix à l'aide de:
ce qui donne:
Aller binaire.
Couleur c = new Color(0b11111111111111111111111111111111, true);
Que par le Java docs, "composante alpha est dans les bits 24-31, la composante rouge est dans les bits 16 à 23, la composante verte est dans les bits 8 à 15, et la composante bleue est dans les bits 0 à 7"