안녕하세요, 자바 스윙 타이머를 사용하여 임의의 간격으로 Person 개체를 생성하려고합니다.자바 스윙 타이머의 무작위 시간 간격?
나는 함수를 사용하여 임의의 푸 아송 수를 생성하고 있으며, 임의로 생성 된 수를 지연으로 사용하여 다음 사람 객체를 만들 계획입니다. 그러나 포아송 값이 9 초 간격을 나타내지 만 모든 것이 1 초 ~ 1 초 사이에 생성되기 때문에 작동하지 않는 것처럼 보입니다. 다음은 솔루션에서의 시도입니다.
private ActionListener generatePerson = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
doSomething();
updateTimer();
}
private void doSomething()
{
try {
newPerson = new person(buildingType,currenttime,totnumoffloors);
newPerson.setArrivalTime(timeElapsed);
newPerson.printArrival();
peopleQueue[newPerson.currentFloor-1]++;
floorQueue[newPerson.currentFloor-1]++;
System.out.println("Added a new person to the queue.");
repaint();
System.out.println("Done repainting.");
} catch (IOException ex) {
System.out.println("Unable to create object!");
}
}
private void updateTimer()
{
int lol = 0;
periodicPerson.stop();
newPoissonTime = generatePoisson();
newPoissonTime = (newPoissonTime*1000);
lol = (int)newPoissonTime;
System.out.println("NEW POISSON TIME: " + lol);
periodicPerson.setDelay(lol);
periodicPerson.restart();
}
};
나는 포아송 시간에 1000을 곱하여 초로 변환했습니다. 로
내가 다음 초기 타이머를 생성 : 나는 포아송를 생성 할 때 문제가 생각
periodicPerson = new Timer((int)generatePoisson()*1000, generatePerson);
, 그냥 지연이 단순히 작동하지 않는 시간 간격으로, 또는 있다는 것을 사용합니다.
미리 감사드립니다.
와우 효과가 있습니다. 나는 당신이 그 물건을 "재설정"하기 위해 멈춰 설 필요가 있다고 생각했습니다. 대단히 고마워, 나는 바보 야. D –