JAVA:如何循环颜色

时间:2011-06-29 23:05:46

标签: java

public class MyPix ()
 {
     pixColor = Color.BLUE;
 }

public void draw(Graphics g)
    {
        g.setColor(pixColor);
        g.fillOval(5,5,10,10);
    }

鉴于我有上面的简化课程。如何在没有相互作用的情况下使我的形状循环变色。我没有得到线程/睡眠的东西。

2 个答案:

答案 0 :(得分:3)

如果没有交互,您需要使用像SwingWorker这样的东西,这在Swing中比在Thread / Sleep系统中更容易使用。有关详细信息,请参阅tutorial on SwingWorker

答案 1 :(得分:1)

您想要离散或连续的颜色变化吗?如果是后者 -

static Color getBGColor1() {
    float h = System.currentTimeMillis()*1e-3f,
          s = .1f, b = .9f;
    return Color.getHSBColor(h, s, b);
}

编辑:也许你想要这样的东西?

static Random rnd = new Random();
static Color getBGColor2() {
    rnd.setSeed(System.nanoTime()/1000000000*1337);
    float h = rnd.nextFloat(), s = .1f, b = .9f;
    return Color.getHSBColor(h, s, b);
}