import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class JCode extends JFrame implements ActionListener {
  JLabel label;
  JTextField eingabe;
  JTextField asciiAusgabe;
  JTextField binaerAusgabe;
  JButton schalter;
  JPanel norden, sueden;
  int asciiCode=0;

  public JCode(String name) {
     super(name);
     setDefaultCloseOperation(EXIT_ON_CLOSE);
     setSize(300, 100);
     Container cp = getContentPane();
     cp.setLayout(new BorderLayout());
     norden = new JPanel(new GridLayout(1,2));
     cp.add(norden,BorderLayout.NORTH);
     sueden = new JPanel (new GridLayout(1,2));
     cp.add(sueden,BorderLayout.SOUTH);

     label = new JLabel("Char-Eingabe: ");
     norden.add(label);

     eingabe = new JTextField();
     norden.add(eingabe);
     
     schalter = new JButton("Kodiere");
     cp.add(schalter,BorderLayout.CENTER);
     schalter.addActionListener(this);
     
     asciiAusgabe = new JTextField();
     asciiAusgabe.setEditable(false);
     sueden.add(asciiAusgabe);

     binaerAusgabe = new JTextField("",10);
     binaerAusgabe.setEditable(false);
     sueden.add(binaerAusgabe);
     
     setVisible(true);
  }
  public String macheBinaerCode(int asciiCode){
     String binaerCode = "";
     int z = 128;
     while (z!=0){
       if (asciiCode < z ){
         binaerCode += "0";
       }
       else {
         binaerCode += "1";
         asciiCode -= z;
       }
       z /= 2;
     }
     return binaerCode;
  }

  public void actionPerformed(ActionEvent e){
     asciiCode= (int)(eingabe.getText().charAt(0));
     asciiAusgabe.setText(""+asciiCode);
     binaerAusgabe.setText(""+macheBinaerCode(asciiCode));
  }
  
  public static void main(String[] args){
    new JCode("String-ASCII-Binär");
  }
}

 



