import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Rot13 extends JPanel
   implements ActionListener
{
  private static JFrame f;
  public static JTextArea rotIn, rotOut;
  private JButton rotButton;

  public Rot13() {
    rotButton = new JButton("Rotate");
    rotButton.setMnemonic('r');
    rotButton.addActionListener(this);

    rotIn = new JTextArea(0,32);
    rotIn.setText("orr");
    rotOut = new JTextArea(0,32);

    add(rotIn);
    add(rotButton);
    add(rotOut);
  }

  public static void main(String args[]) {

    Rot13 pan = new Rot13();
    Rot13Adapter panA = new Rot13Adapter();

    f = new JFrame("Cor, rot13-er");

    f.addWindowListener(panA);

    f.getContentPane().add(BorderLayout.CENTER, pan);
    f.pack();
    f.setVisible(true);
  }

  public void actionPerformed(ActionEvent e) {

    if(e.getSource() == rotButton) {
      char tmpStr[] = rotIn.getText().toCharArray();

      for(int i = 0; i < rotIn.getText().length(); i++) {
        if(tmpStr[i] >= 'n') { tmpStr[i] -= 13; }
                        else { tmpStr[i] += 13; }
      }

      rotOut.setText(String.copyValueOf(tmpStr));
    }
  }
}

class Rot13Adapter extends WindowAdapter {
   public void windowClosing(WindowEvent e)
   {
      // close files, etc.
      System.exit(0); 
   }
}
