1秒間のフレーム数を設定しているのですが、期待通りの値になりません。
秒間30フレームにしたいのですが、どうすればよいでしょうか。

現在はこうなってます
//表示する処理
fps++;
if(dtime + 1000 <= System.currentTimeMillis()) {
dfps = fps;
fps = 0;
dtime = System.currentTimeMillis();
}
g.drawString("FPS:"+dfps,0,238);

//スリープ処理
int INTERVAL = 1000 / 30;

long wait = INTERVAL - (System.currentTimeMillis() - lastTime);
if (wait > 0) {
try {
Thread.sleep(wait);
} catch(Exception e) {
}
}
lastTime = System.currentTimeMillis();

30前後の値を期待しているのですが、21〜22しかなりません。
これ以外に余分な処理は入っていません。
よろしくお願いします