
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;


public class Temperatura extends JFrame{
    private JTextField campo1;
    private JTextField campo2;
    private JLabel etiqueta1;
    private JLabel etiqueta2;
    
    public Temperatura() {
        super("Conversion");
        
        this.definirVentana();
        
        this.setResizable(false);        
        this.setSize(200, 300);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    
    public void definirVentana() {
        this.setLayout(new FlowLayout());
        campo1 = new JTextField(15);
        campo2 = new JTextField(15);
        etiqueta1 = new JLabel("Grados C");
        etiqueta2 = new JLabel ("Frados F");
                
        this.add(etiqueta1);
        this.add(campo1);
        this.add(etiqueta2);
        this.add(campo2);

        campo1.addKeyListener((KeyListener) new campo1_KeyListener());
        campo2.addKeyListener((KeyListener) new campo2_KeyListener());
    }
    
    private class campo1_KeyListener implements KeyListener {     

        public void keyTyped(KeyEvent arg0) {
            if(arg0.getKeyChar() == '\n' ) {
                String a = campo1.getText();
                double val = 0; 
                try {
                    val = Double.parseDouble(a);
                }
                catch (NumberFormatException ex) {
                    campo1.setText("error");
                    return;
                }

                val = val*9.0/5.0 + 32;
                campo2.setText("" +val);   
            }
        }

        public void keyPressed(KeyEvent arg0) {

        }

        public void keyReleased(KeyEvent arg0) {

        }
    }
    private class campo2_KeyListener implements KeyListener {

        public void keyTyped(KeyEvent arg0) {
            if(arg0.getKeyChar() == '\n' ) {
                String a = campo2.getText();
                double val = 0; 
                try {
                    val = Double.parseDouble(a);
                }
                catch (NumberFormatException ex) {
                    campo2.setText("error");
                    return;
                }

                val = (val - 32)*5.0/9.0;
                campo1.setText("" +val);   
            }
        }

        public void keyPressed(KeyEvent arg0) {

        }

        public void keyReleased(KeyEvent arg0) {

        }
        
    }
    
    static public void main(String args[]){
        Temperatura a = new Temperatura();
    }
}
