AIM:-
Design a user define bean name as Temperature. Which is use to check the
temperature. Temperature bean has a property currentTemp Also define the
TemperaturLlistener and TemperatureEvent class for it Temperature Listener
contain one handler called temperatureChanged which is called when temperature
changes and TemperatureEvent class has getTemperature() as method.
Source
Code
Thermometer.java:
import
java.awt.*;
import
java.util.*;
import
javax.swing.*;
import
javax.swing.event.*;
class
Thermometer extends JSlider implements ChangeListener
{
private
Vector listeners = new Vector();
public
Thermometer(int min,int max,int initial)
{
super(min,max,initial);
addChangeListener(this);
}
public
int getTemperature()
{
int
i=getValue();
return
i;
}
public
void setTemperature(int i)
{
setValue(i);
}
public
void setPaintTemperatureTicks(boolean state)
{
setPaintTicks(state);
}
public
void setPaintTemperatureDegrees(boolean state)
{
setPaintLabels(state);
}
public
void setMinorTemperatureTickSpace(int i)
{
setMinorTickSpacing(i);
}
public
void setMajorTemperatureTickSpace(int i)
{
setMajorTickSpacing(i);
}
public
synchronized void addTemperatureListener(TemperatureListener tl)
{
listeners.addElement(tl);
}
public
synchronized void removeTemperatureListener(TemperatureListener tl)
{
listeners.removeElement(tl);
}
public
void stateChanged(ChangeEvent ce)
{
TemperatureEvent
te = new TemperatureEvent(this);
for(Enumeration
e = listeners.elements();e.hasMoreElements();)
{
TemperatureListener
t=(TemperatureListener)e.nextElement();
t.temperatureChanged(te);
}
}
}
TemperatureEvent.java:
public
class TemperatureEvent extends java.util.EventObject
{
public
TemperatureEvent(Object source)
{
super(source);
}
}
TemperatureListener.java:
public
interface TemperatureListener extends java.util.EventListener
{
void
temperatureChanged(TemperatureEvent m);
}
MyThermometer.java:
import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
import
javax.swing.event.*;
class
MyThermometer extends JFrame implements TemperatureListener
{
Container
cont;
Thermometer
t;
JLabel
lblTemp;
public
MyThermometer()
{
cont=getContentPane();
t=new
Thermometer(-5,100,30);
t.setMinorTemperatureTickSpace(1);
t.setMajorTemperatureTickSpace(5);
t.setPaintTemperatureTicks(true);
t.setPaintTemperatureDegrees(true);
t.addTemperatureListener(this);
cont.add(t,BorderLayout.SOUTH);
lblTemp=new
JLabel("<html>"+t.getTemperature()+"<sup>o</sup>
C<html>",JLabel.CENTER);
lblTemp.setFont(new
Font("Arial Black",Font.BOLD,80));
cont.add(lblTemp,BorderLayout.CENTER);
setSize(500,500);
setVisible(true);
}
public
void temperatureChanged(TemperatureEvent te)
{
int
t1=((Thermometer)te.getSource()).getTemperature();
lblTemp.setText("<html>"+t1+"<sup>o</sup>
C</html>");
}
public
static void main(String[] args)
{
MyThermometer
mt=new MyThermometer();
mt.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
}
No comments:
Post a Comment