Something
public text v1 · immutableimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.ImageIcon;
public class Speedo extends JFrame
{
int i = 0;
int a;
int b;
int c;
int v;
double fuel=0.0;
Timer t;
Timer BrakeT;
Timer decelT;
boolean ticking = false;
boolean BTicking = false;
String speeding = ("WARNING ! EXCESSIVE SPEEDING IS DANGEROUS");
String limit = ("WARNING ! EXCEEDING THE SPEED LIMIT IS ILLEGAL!");
ImageIcon[] img = new ImageIcon[10];
ImageIcon pt = new ImageIcon("small-Point.jpg");
JPanel Content = new JPanel();
JTextField jtfFuel = new JTextField (5);
JButton jbnSetFuel = new JButton ("Set Fuel");
JButton jbnGas = new JButton ("GAS");
JButton jbnBrake = new JButton ("BRAKE");
ImageIcon img0 = new ImageIcon ("0.jpg");
ImageIcon imgS0 = new ImageIcon ("small-0.jpg");
JLabel jlbDisplay = new JLabel (img0);
JLabel jlbDisplay2 = new JLabel (img0);
JLabel jlbDisplay3 = new JLabel (img0);
JLabel jlbF = new JLabel ("Fuel (L)");
JLabel jlbMessage = new JLabel ();
JLabel jlbPoint = new JLabel (pt);
JLabel jlbFuel1 = new JLabel (imgS0);
JLabel jlbFuel2 = new JLabel (imgS0);
JLabel jlbFuel3 = new JLabel (imgS0);
public Speedo()
{
this.setContentPane(Content);
Content.setLayout(new BoxLayout(Content,BoxLayout.Y_AXIS));
for (int i = 0; i < 10; i++)
{
img[i] = new ImageIcon (i + ".jpg");
}
t = new Timer(200, new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
v=i;
c = v % 10;
jlbDisplay3.setIcon(img[c]);
v = v / 10;
b = v % 10;
jlbDisplay2.setIcon(img[b]);
v = v / 10;
a = v % 10;
jlbDisplay.setIcon(img[a]);
i=i+2;
if(i>=160)
{
i=160;
}
if(i >= 80)
{
jlbMessage.setText(speeding);
}
repaint();
}//end actionPerformed TIMER!
});//end timer
BrakeT = new Timer(200, new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
i=i-3;
if (i<=0)
{
i=0;
}
if (i <= 80)
{
jlbMessage.setText(" ");
}
v=i;
c = v % 10;
jlbDisplay3.setIcon(img[c]);
v = v / 10;
b = v % 10;
jlbDisplay2.setIcon(img[b]);
v = v / 10;
a = v % 10;
jlbDisplay.setIcon(img[a]);
}//end actionPerformed TIMER!
});//end timer
decelT = new Timer(200, new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
i=i-1;
if (i<=0)
{
i=0;
}
if (i <= 80)
{
jlbMessage.setText(" ");
}
v=i;
c = v % 10;
jlbDisplay3.setIcon(img[c]);
v = v / 10;
b = v % 10;
jlbDisplay2.setIcon(img[b]);
v = v / 10;
a = v % 10;
jlbDisplay.setIcon(img[a]);
}//end actionPerformed TIMER!
});//end timer
//declare panels
JPanel fuel = new JPanel();
JPanel p = new JPanel();
JPanel button = new JPanel();
//button panel
button.add(jbnGas);
button.add(jbnBrake);
Content.add(button);
//Speed panel
p.add(jlbDisplay);
p.add(jlbDisplay2);
p.add(jlbDisplay3);
jlbMessage.setForeground(Color.red);
p.add(jlbMessage);
Content.add(p);
//fuel jFrame
fuel.add (jlbFuel1);
fuel.add(jlbFuel2);
fuel.add(jlbPoint);
fuel.add(jlbFuel3);
fuel.add(jlbF);
fuel.add(jtfFuel);
fuel.add(jbnSetFuel);
Content.add(fuel);
//mouse listeners
jbnGas.addMouseListener(new jbnGasAction() );
jbnBrake.addMouseListener(new jbnBrakeAction() );
// button listener
jbnSetFuel.addActionListener(new jbnSetFuel() );
}
class jbnSetFuel implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jbnSetFuel)
{
fuel = Double.parseDouble(jtfFuel.getText());
}
}
}//end setfuel
class jbnGasAction implements MouseListener //the class for the accell timer and mouse listener
{
public void mousePressed(MouseEvent e)
{
ticking = true;
t.start();
decelT.stop();
}
public void mouseReleased(MouseEvent e)
{
ticking = false;
t.stop();
decelT.start();
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
class jbnBrakeAction implements MouseListener
{
public void mousePressed(MouseEvent e)
{
BTicking = true;
BrakeT.start();
decelT.stop();
}
public void mouseReleased(MouseEvent e)
{
BTicking = false;
BrakeT.stop();
decelT.start();//when no buttons are pressed the decel timer starts and slowly decels the speed (i)
}
public void mouseClicked(MouseEvent e){}//mouse clicked, mouse entereed & mouse exited are unused so left blank
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
public static void main (String args[])
{
Speedo d = new Speedo();
d.setTitle("SPEEDOMETER");
d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
d.setLocation(250,250);
d.setSize(450,450);
d.setVisible(true);
d.setResizable(false);
}//end main
}