我用Java创建了一个程序(出于练习目的),并且我有一个星星,通过滚动鼠标,颜色必须从浅红色变成深红色。(使用MouseWheelListener)反之亦然 一切都与其他类型配合良好星星,但只有这个不起作用.. 为了不让你们感到困惑,我将向你们展示一些代码!
这里是红星类
public class StarRed extends Star {
protected int r = 221;
protected Color rood = new Color(r, 0, 0);
public StarRed(int radius, int x, int y) {
super(radius, x, y);
this.color = rood;
System.out.println(r);
}
}
如您所见,我尝试使用 R 变量来更改颜色..
在我的 Controller 中我这样做
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
for(StarRed s: rs) {
s.r += e.getWheelRotation();
}
repaint();
}
但是颜色没有改变,谁能告诉我我做错了什么?
最佳答案
每次移动滚轮时,您都需要实例化一种新颜色,如下所示:
for(StarRed s: rs) {
s.r += e.getWheelRotation();
s.rood = new Color(r, 0, 0);
s.color = s.rood;
}
目前您仅更改字段 r
,而不更改 r
用于构造的 Color rood
。
关于java - 在Java中改变RGB颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13781479/