Я пытаюсь нарисовать несколько точек на изображении. Не все сразу, но один за другим с задержкой несколько мс? Я пробовал использовать таймер, но это только задерживает только начало рисования. Вот мой код, что не так?Java: временная задержка
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
Scanner in = new Scanner(new File("file.txt"));
while (in.hasNext()) {
String f = in.nextLine();
String[] tokens = f.split(" ");
Map<String,String> map = new HashMap<>();
map.put(tokens[3],tokens[4]);
int x=Integer.parseInt(tokens[3]);
int y=Integer.parseInt(tokens[4]);
Graphics g1 = bg.getGraphics();
g1.drawImage(scaled, x, y, null);
g1.dispose();
label.repaint();
}
}catch ( FileNotFoundException | NumberFormatException i) {
}
}
};
Timer timer = new Timer(500, listener);
timer.start();
1. используйте «ScheduledExecutorService», это 2014; 2. зачем открывать новый сканер на каждом цикле? – fge
Потому что он в учебной программе и не должен знать или использовать об ExcecutorServices? –
, если у вас есть цикл, и вы хотите его замедлить (т. Е. Отложить рисование), тогда вы должны поместить код задержки в цикл. – DwB