# Umrechner (Dezimal, Hexadezimal und Binär)



## SteveThon (6. Dez 2012)

Hallo Leute,

Ich hab in der Schule gerade das Projekt, das ich einen Umrechner programmieren muss. Er soll automatisch die Zahlen erkennen, also ob es eine Dezimal-, Hexadezimal- oder eine Binärzahl ist und sie jeweils umrechnen können in die anderen zwei Zahlen. Weiß aber nicht genau wie ich damit anfange. Ich hab zumindestens schonmal die Frame eingerichtet und den "Clear"-Button. 


```
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;


public class Umrechner extends Frame {
  // Anfang Attribute                                                            ê
  private JLabel jLabel_Dezimal = new JLabel();
  private JLabel jLabel_Hexa = new JLabel();
  private JLabel jLabel_Binaer = new JLabel();
  private JTextField jTextField_Dez = new JTextField();
  private JTextField jTextField_Hex = new JTextField();
  private JTextField jTextField_Bin = new JTextField();
  private JButton jButton_com = new JButton();
  private JButton jButton_clear = new JButton();
  // Ende Attribute

  public Umrechner(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { dispose(); }
    });
    int frameWidth = 273;
    int frameHeight = 222;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Panel cp = new Panel(null);
    add(cp);
    // Anfang Komponenten

    jLabel_Dezimal.setBounds(33, 24, 70, 23);
    jLabel_Dezimal.setText("Decimal");
    jLabel_Dezimal.setFont(new Font("Times New Roman", Font.PLAIN, 19));
    jLabel_Dezimal.setHorizontalAlignment(SwingConstants.RIGHT);
    cp.add(jLabel_Dezimal);
    jLabel_Hexa.setBounds(56, 64, 43, 23);
    jLabel_Hexa.setText("Hexa");
    jLabel_Hexa.setFont(new Font("Times New Roman", Font.PLAIN, 19));
    jLabel_Hexa.setHorizontalAlignment(SwingConstants.RIGHT);
    cp.add(jLabel_Hexa);
    jLabel_Binaer.setBounds(55, 104, 46, 23);
    jLabel_Binaer.setText("Binär");
    jLabel_Binaer.setFont(new Font("Times New Roman", Font.PLAIN, 19));
    jLabel_Binaer.setHorizontalAlignment(SwingConstants.RIGHT);
    cp.add(jLabel_Binaer);
    jTextField_Dez.setBounds(128, 24, 121, 24);
    jTextField_Dez.setText("");
    cp.add(jTextField_Dez);
    jTextField_Hex.setBounds(128, 64, 121, 24);
    jTextField_Hex.setText("");
    cp.add(jTextField_Hex);
    jTextField_Bin.setBounds(128, 104, 121, 24);
    jTextField_Bin.setText("");
    cp.add(jTextField_Bin);
    jButton_com.setBounds(128, 144, 121, 25);
    jButton_com.setText("Compute");
    jButton_com.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton_com_ActionPerformed(evt);
      }
    });
    jButton_com.setFont(new Font("Times New Roman", Font.PLAIN, 19));
    cp.add(jButton_com);
    jButton_clear.setBounds(8, 144, 121, 25);
    jButton_clear.setText("Clear");
    jButton_clear.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton_clear_ActionPerformed(evt);
      }
    });
    jButton_clear.setFont(new Font("Times New Roman", Font.PLAIN, 19));
    cp.add(jButton_clear);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public void jButton_com_ActionPerformed(ActionEvent evt) {


  }

  public void jButton_clear_ActionPerformed(ActionEvent evt) {
         jTextField_Dez.setText("");
         jTextField_Hex.setText("");
         jTextField_Bin.setText("");
  }

  // Ende Methoden

  public static void main(String[] args) {
    new Umrechner("Umrechner");
  }
}
```

Über Hilfe würde ich mich sehr freuen, danke schonmal im Vorraus

mfG Steve


----------



## PsykoPunkZ (6. Dez 2012)

Morgen,



puhh also da haste dir ja ne arbeit gemacht mit deiner GUI  das geht natürlich einfacher und übersichtlicher aber das darfst natürlich du selber entscheiden.


Schau dir hier mal die Ausgabe an und versuch das mal in deinen Code ein zu binden:


```
public class Bin2Hex {
	 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String binaerZahl = "1010101011001101";
        int dezimalZahl = Integer.parseInt(binaerZahl,2);
        String hexZahl = Integer.toHexString(dezimalZahl);
        
        System.out.println("Binär: " + binaerZahl);
        System.out.println("Dezimal: " + dezimalZahl);
        System.out.println("Hexadezimal: " + hexZahl);
    }
 
}
```


----------



## Marcinek (6. Dez 2012)

Auf der einen Seite ist natürlich die Antwort korrekt.

Auf der anderen Seite denke ich nicht, dass das Ziel der Übung ist fertige Methoden zu nutzen ^^

---

Aber @TO: Ich kann dir Empfehlen mal zu googeln. Du bist nicht der erste, der so einen Umformer machen soll..
:toll:


----------



## PsykoPunkZ (6. Dez 2012)

Marcinek hat gesagt.:


> Auf der einen Seite ist natürlich die Antwort korrekt.
> 
> Auf der anderen Seite denke ich nicht, dass das Ziel der Übung ist fertige Methoden zu nutzen ^^
> 
> ...



Da hast du auch recht aber im Falle, dass er es in ner bestimmten Zeit lösen muss und es nicht hinbekommt hat er ne Absicherung und wenn nur das ergebnis zählt ist es ja auch nich falsch fertige methoden zu nutzen


----------

