All pastes #942292 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-03-14 12:42 UTC
rendered paste body
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.text.DecimalFormat;
public class HUD extends JFrame
{
   DecimalFormat kmSpeed = new DecimalFormat("0.00 Km/h");
   DecimalFormat kmTravelled = new DecimalFormat("0.00 Km");
   String formattedDistance="";
   int speed = 0;
   String number = "000";
   double distance = 0;
   JPanel mainPanel = new JPanel();
   JPanel sidePanel = new JPanel(new GridLayout(3,2));
   JPanel displayPanel = new JPanel(new FlowLayout());
   JTextField speedOutput = new JTextField(10);
   JTextField distanceOutput = new JTextField(10);
   JButton accelerate = new JButton("Accelerate");
   JButton brake = new JButton("brake");
   Timer t;
   Timer f;
   boolean accelerating=false;
        
public HUD()
{
      this.setContentPane(mainPanel);    
      mainPanel.add(displayPanel);
      mainPanel.add(sidePanel);
      mainPanel.add(speedOutput);
      mainPanel.add(distanceOutput);
      sidePanel.add(accelerate);
      sidePanel.add(brake);
      updateDistance();
      pack();
      accelerate.addActionListener(new ActionListener()
          {
                public void actionPerformed(ActionEvent e)
                {
                     if(accelerating==true)
                     {
                     t.restart();
                     accelerating = false;
                     updateDistance();
                     }
                     else{
                           t.restart();
                           accelerating = true;
                           updateDistance();
                         }    
                }
         }
      );
      brake.addActionListener(new ActionListener()
          {
                public void actionPerformed(ActionEvent e)
                {
                     if(accelerating==true)
                     {
                     t.restart();
                     accelerating = false;
                     updateDistance();
                     }
                     else{
                           t.restart();
                           accelerating = true;
                           updateDistance();
                         }    
                }
         }
      );      
 t = new Timer(100, new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    if(accelerating==true)
                    {
                        speed = speed + 1;
                        updateDistance();
                        while(speed>160)
                        {
                            speed--;
                            speed--;
                            speed--;
                            updateDistance();
                        }
                    }
                    else{
                            speed--;
                            speed--;
                            speed--;
                            updateDistance();
                        }
                    while(speed<-1)
                    {
                        speed++;
                    }
                    speed++;
                    speedOutput.setText(kmSpeed.format(speed));
                    updateDistance();                    
                }
            }
            );
  }
    public void updateDistance()
    {
       distance = distance + speed/36000;
       formattedDistance = kmTravelled.format(distance);
       distanceOutput.setText(formattedDistance);
       displayPanel.removeAll();
       number=(""+speed);
       for(int i=0;i<number.length();i++)
        {
            if(speed<10)
            {
            displayPanel.add(new DigitRender(00));
            displayPanel.add(new DigitRender(Integer.parseInt( number.substring(i,i+1) )));
            }else{
            displayPanel.add(new DigitRender(Integer.parseInt( number.substring(i,i+1) )));
            }
        }
        pack();
    }
}