rendered paste bodyimport 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();
}
}