如何在Java中使颜色变暗
我正在用java制作一个绘图工具,但橙色看起来有点太浅了。 在函数如何在Java中使颜色变暗,java,colors,Java,Colors,我正在用java制作一个绘图工具,但橙色看起来有点太浅了。 在函数public color darker()中将颜色名称放在何处 public void clear(){ g2.setPaint(颜色为白色); //在整个绘图区域上绘制白色以清除 g2.fillRect(0,0,getSize().width,getSize().height); g2.setPaint(颜色为黑色); 重新油漆(); } 公共空间红色(){ //在g2上下文上应用红色 g2.setPaint(颜色为红色); }
public color darker()
中将颜色名称放在何处
public void clear(){
g2.setPaint(颜色为白色);
//在整个绘图区域上绘制白色以清除
g2.fillRect(0,0,getSize().width,getSize().height);
g2.setPaint(颜色为黑色);
重新油漆();
}
公共空间红色(){
//在g2上下文上应用红色
g2.setPaint(颜色为红色);
}
公共空间(黑色){
g2.setPaint(颜色为黑色);
}
公共无效品红色(){
g2.setPaint(颜色为洋红色);
}
公共绿地(){
g2.setPaint(颜色为绿色);
}
公共空间蓝色(){
g2.setPaint(颜色为蓝色);
}
公共空间黄色(){
g2.setPaint(颜色为黄色);
}
公共空间橙色(){
g2.setPaint(颜色为橙色,颜色较深);
}
}
请告诉我该写些什么来使橙色更暗。您可以做:
Color.ORANGE.darker()
或
此外,如果您仍然认为光线不够暗,您甚至可以:
Color.orange.darker().darker().darker().darker().darker() // as many times as you want!
此外,类中定义的默认橙色为:
new Color(255, 200, 0)
如果你愿意,你可以用这些数字做点什么
在代码中,更改此行:
g2.setPaint(Color.orange.darker);
到
以及
到
以下是我创建的内容:
public static int darker (int color, float factor) {
int a = Color.Orange( color );
return Color.argb( a,
Math.max( (int)(r * factor), 0 ));
}
color=color.darker()可能是code>?关键点是变暗()
返回一种新颜色:它不会使color.ORANGE
变暗。因此,这些语句实际上是无效的-您需要对结果做些什么。@AndyTurner,这不是您所认为的!(对不起!)这就像-setBackground(Color.orange.darker())代码>对。所以如果将结果传递给setBackground
,您正在对结果进行处理。听起来很像我说的。如果你认为是这样的话,那么从每一行中删除分号,因为它们暗示了Andy说的话(编辑之前你的错误评论也表明了这一点)。谢谢你的帮助。对于这个类,Color.Orange
不是一个方法,Color.argb
不是一个方法,未定义r
。如果您指的是其他颜色类,请说明该类是什么。
g2.setPaint(Color.orange.darker()); // darker ain't a var, it is a method.
drawArea.orange.darker();
drawArea.orange(); //You cannot call darker() on void!
public static int darker (int color, float factor) {
int a = Color.Orange( color );
return Color.argb( a,
Math.max( (int)(r * factor), 0 ));
}