import java.awt.*;
import javax.swing.*;
import java.util.EventObject;

public class CheckListener3{
  static JButton myButton(String s){
    JButton c=new JButton(s);
    JBox.setSize(c,300,40);
    c.setFont(new Font("Arial",Font.BOLD,24));
    c.setHorizontalAlignment(SwingConstants.LEFT);
    return c;
  }
  static JTextField myTextField(String s){
    JTextField c=new JTextField(s);
    JBox.setSize(c,200,40);
    c.setFont(new Font("Arial",Font.BOLD,24));
    return c;
  }
  static String format(double d){
    int x=(int) (d*10);
    return ""+(x/10)+"."+(x%10);
  }
  public static void main(String args[]){
     JFrame frame=new JFrame("CheckListener3");
     frame.setSize(600,600);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     JButton button1=myButton("<<<  Celsius");
     JButton button2=myButton("<<<  Fahrenheit");
     JTextField field1=myTextField("");
     JTextField field2=myTextField("");
     JBox body=
       JBox.vbox(
         JBox.vglue(),
         JBox.hbox(JBox.hglue(),field1,button1,JBox.hglue()),
         JBox.hbox(JBox.hglue(),field2,button2,JBox.hglue()),
         JBox.vglue()
       );
     frame.add(body);
     frame.setVisible(true);
     
     JEventQueue events=new JEventQueue();
     events.listenTo(button1,"celcius");
     events.listenTo(button2,"fahrenheit");
     while(true){
        EventObject event=events.waitEvent();
        String name=events.getName(event);
        if(name.equals("celcius")){
           double f=Double.parseDouble(field2.getText());
           field1.setText(format((f-32)/1.8));    
        }else
        if(name.equals("fahrenheit")){
           double c=Double.parseDouble(field1.getText());
           field2.setText(format(c*1.8+32));    
        }
     }
  }
}
