HTML用16进制来标识颜色,而Java则有两种方法,一种是使用颜色常量,另一种是使用整数构造颜色。Java中的颜色来自于java.awt.Color,不过它的API可不像HTML的颜色机制那样简单。在java中可以用以下两种方式实现颜色:
Color.blue
或者创建一种新的颜色:
newColor(0,0,255)
但问题是,用常量表示颜色总是有限的,所以大多数颜色需要通过整型的构造方法来建立。使用16进制的整数可以轻松地将基于HTML的颜色转换成java中的颜色。比如,颜色是new Color(0,0,0xff);淡黄色是new Color(0xf5,0xef,0xd1)。
另一种转换方法是在java代码中使用getColor方法,示例如下:
package com.generationjava.awt;
import java.awt.Color;
public class ColorW {
/**
* Given a html-like color such as #bbac33, turns it
* into a java.awt.Color. The # on the front is optional.
*/
static public Color getColor(String color) {
if(color.charAt(0) == '#') {
color =color.substring(1);
}
if(color.length() != 6) {
returnnull;
}
try {
int r =Integer.parseInt(color.substring(0,2), 16);
int g =Integer.parseInt(color.substring(2,4), 16);
int b =Integer.parseInt(color.substring(4), 16);
returnnew Color(r, g, b);
} catch(NumberFormatExceptionnfe) {
returnnull;
}
}
}