日期:2014-05-20  浏览次数:20835 次

jbutton问题,求教
我在写jbutton的背景色时,写了句:
encrypt.setBackground(new Color(0xff0000,0xff0000,0xff0000));

结果eclipse报错:

javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]
Exception in thread "main" java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue


我改为encrypt.setBackground(new Color(238,238,238));
又达不到自动生成的那个jbutton的背景效果,很是纠结!

望高手指点!!!

------解决方案--------------------
改成
encrypt.setBackground(new Color(255,255,255));
------解决方案--------------------
当然有问题啦,R G B 每个值范围在255之内,一般在某些地方用0xff0000其实是将R、G和B用16进制合并到一起了,2位代表一个色,因此你可以用0xff代表255或者直接用255,也就是说你可以用:
encrypt.setBackground(new Color(0xff,0xff,0xff));

------解决方案--------------------
看到你用new Color(0xff0000,0xff0000,0xff0000),而ff0000(十六进制) = 16711680(十进制)
,而color的设置范围在0~255之间,超范围了。
------解决方案--------------------
引用:
引用:
当然有问题啦,R G B 每个值范围在255之内,一般在某些地方用0xff0000其实是将R、G和B用16进制合并到一起了,2位代表一个色,因此你可以用0xff代表255或者直接用255,也就是说你可以用:
encrypt.setBackground(new Color(0xff,0xff,0xff));

恩,受教了!

1、但我很奇……

这个是encrypt.setBackground(new Color(238,238,238));
和encrypt.setBackground(new ColorUIResource(238,238,238));的区别
你可以用encrypt.setBackground(new ColorUIResource(new Color(238,238,238)))或者直接用
encrypt.setBackground(new ColorUIResource(238,238,238));
------解决方案--------------------
new Color(0xff0000,0xff0000,0xff0000)错了,应该是
new Color(0xff,0xff,0xff) 或
new Color(255,255,255)