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