See this answer for creating a digital clock in Swing.

Though this answer is only a clock, it could easily be made into a stop watch. Make use of the System.currentTimeMillis()
. Have a static
start time, that is populated to a data structure of a Runner
object that will hold name
startTime
and endTime
. For each runner when they're finished, they get their own endTime
.
See this question for elapsed time formatting.
UPDATE
There are number of ways you can handle this. One solution is you could store the Runners
in a HashMap
public class Runner {
long endTime;
Integer id;
public void setEndTime(long endTime) {
this.endTime = endTime;
}
}
public class GUI {
Map<Integer, Runner> runners = new HashMap<>();
public GUI {
Runner runner = new Runner(12334....) // id
map.put(runner.getId(), runner);
}
}
Like I said there are a number of ways to set the end time. One way is to have a endTime
variable also in your GUI class. When you click a button, the variable will be assigned. Then in a text field you can type in the runner id, and assign the endtime to the runner in the map that matches the id. So everytime the button is pressed, it will be a new end time set the endTime
variable, so each runner will get their own endTime