私のプログラムは現在、テキスト ファイルから読み取り、配列内の次の値に応じて異なる色の円を描画します。現時点では、配列の最初の 10 個の値を読み取っているため、10 個の塗りつぶされた円があるはずです。これらの円はすべて同時にペイントしますが、1つずつペイントしたいので、たとえば、ペイントされた各円の間に2秒の間隔があります。以下のコードは、値の読み取りと円の描画を行うセクションです。誰か助けてください。タイマーを追加する場所と方法について非常に混乱しています。
public void paintComponent(Graphics g) {
drawShapes(g, circlesT);
}
public void drawShapes(Graphics g, ArrayList<Shape> circlesT) {
Graphics2D ga = (Graphics2D) g;
ga.drawImage(newImage, 0, 0, null);
for (int i = 0; i < circlesT.size(); i++) {
ga.draw(circlesT.get(i));
ga.setPaint(Color.white);
ga.fill(circlesT.get(i));
}
for (int i = 0; i < 10; i++) {
if (read.temp.get(i) < 31 && read.temp.get(i) > 30) {
ga.draw(circlesT.get(i));
ga.setPaint(Color.green);
ga.fill(circlesT.get(i));
} else if (read.temp.get(i) < 32 && read.temp.get(i) > 31) {
ga.draw(circlesT.get(i));
ga.setPaint(Color.red);
ga.fill(circlesT.get(i));
} else if (read.temp.get(i) < 33 && read.temp.get(i) > 32) {
ga.draw(circlesT.get(i));
ga.setPaint(Color.yellow);
ga.fill(circlesT.get(i));
}
}
}