protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics gg = g.create(); if (trainNumber < 0) return; TrainModel tm = (TrainModel) w.get(KEY.TRAINS, trainNumber, modelRoot.getPlayerPrincipal()); trainModelViewer.setTrainModel(tm); int waterRemaining = trainModelViewer.getWaterRemaining(); int maxWater = ((EngineType) w.get(KEY.ENGINE_TYPES, tm.getEngineType(), Player.AUTHORITATIVE)) .getWaterCapacity(); // draw a dark-blue rectangle and a light blue rectangle gg.setColor(Color.BLUE); gg.fillRect(0, 0, getWidth() * waterRemaining / maxWater, getHeight()); }