package vooga.fighter.view; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.geom.Point2D; import java.util.Observable; import util.Text; /** * Displays an integer number of seconds as a time in minutes and seconds. * * @author Wayne You * */ public class HUDTimer extends HUDElement { protected Text myTimerDisplay = new Text(""); @Override public void update(Observable o, Object arg) { Integer time = 0; try { time = (Integer) getObservedValue(o); } catch (SecurityException e) {} catch (IllegalArgumentException e) { System.err.println("Expected Integer for HUDTimer"); } catch (NoSuchFieldException e) { System.err.println(myFieldName + " is not a member of the class observed."); } catch (IllegalAccessException e) { System.err.println("Illegal access in HUDTimer."); } int minutes = time / 60; int seconds = time % 60; myTimerDisplay.setText(String.format("%03d", minutes) + ":" + String.format("%03d", seconds)); } @Override public void paint(Graphics2D pen, Point2D center, Dimension size) { myTimerDisplay.paint(pen, center, java.awt.Color.BLACK); } }