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)