java - 在Java中改变RGB颜色

标签 java mouselistener

我用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/

相关文章:

java - JColorChooser:在样本面板中保存/恢复最近的颜色

java swing 将 JPanel 与鼠标监听器的行 col 值相关联

java - 检查对象是否是任何 'number' 类的实例?

java - 如何使用 astyanax 在 Cassandra 中设置 GCGraceSeconds?

java - 无法启动neo4j服务器2.1.2

java - 在java中跟踪鼠标移动

java - 为什么我不能做 addMouseListener(e ->{ });?

java - for 循环中的匿名监听器

java - Java Vector 中的唯一数字

Java枚举实践中,不好的代码需要改进