# Zahlensysteme Umrechner



## arcor (25. Januar 2006)

Hallo zusammen,

ich besuche eine Technikerschule in der wir auch Java erlernen sollen.
Leider war ich die letzten 4 Wochen krank (mit Krankenhausaufenthalt usw....) und habe somit eine Menge Stoff verpasst.

Das interessiert meinen Lehrer leider nicht im geringsten und deshalb darf ich bis morgen ein kleines Projekt mit grafischer Oberfläche abgeben.

Die Struktur habe ich hinbekommen, nur leider nicht die Ereignisbearbeitung.


```
// Programmname : Zahlensystemrechner
// Programm zur Umrechnung in verschiedene Zahlensysteme
//
// von
// Programmierzeit : 23.12.2005 - 24.01.2006

import java.awt.*;                                                              // benötigte Packages für grafische Oberflächen
import java.awt.event.*;
import javax.swing.*;

//  Zahlensystemrechner Frame

public class ZahlenSystemRechner extends JFrame implements ActionListener {     // Klassenname und Frame Oberfläche
                                                                                // Listener für Button und Choice implementieren
  // Anfang Variablen
  private Label labName, labBedienung, labStartZahl;                            // Variablen für Labels
  private Label labVon, labNach, labErgebnis;                                   // Variablen für Labels
  private JTextField tfStartZahl, tfEinheit, tfToleranz;                        // Variablen für Textfelder
  private JButton btnBeenden, btnBerechnen;                                     // Variablen für Buttons
  // Ende Variablen

  public ZahlenSystemRechner(final String title) {                              // Titel: ZahlenSystemRechner
    // Frame-Initialisierung
    super(title);                                                               // Titel platzieren
    addWindowListener(new WindowAdapter() {                                     // nötig, damit das Programm
      public void windowClosing(WindowEvent evt) { System.exit(0); } });        // ordnungsgemäß beendet werden kann

    int frameWidth = 500;                                                       // Breite des Frames
    int frameHeight = 400;                                                      // Höhe des Frames
    this.setSize(frameWidth, frameHeight);                                      // Größe des Frames festlegen
    this.setLayout(new BorderLayout());                                         // Borderlayout

    // Anfang Komponenten

    Panel panNorth = new Panel();                                               // neuen Bereich Norden erzeugen
    panNorth.setLayout(new FlowLayout());                                       // Flowlayout für Bereich Nord setzen
    labName = new Label("ZahlenSystemRechner");                                 // Label für die Überschrift
    labName.setFont(new Font("Arial",1,24));                                    // Schriftart für die Überschrift
    panNorth.add(labName);                                                      // Überschrift auf Bereich Nord setzen
    this.add("North",panNorth);




    Panel panCenter = new Panel();                                              // neuen Bereich Center erzeugen
    panCenter.setLayout(new GridLayout(6,2));                                   // Gridlayout für Bereich Center setzen

    labBedienung = new Label
    ("Bedienung: Zahl eingeben und Ausgangszahlen- und Zielzahlen-System auswählen!"); // neuen Label für die Überschrift
    labBedienung.setFont(new Font("Arial",1,12));                               // Schriftart für die Überschrift
    panCenter.add(labBedienung);                                                // Überschrift auf Bereich Center setzen

    Panel panCenterZeile1 = new Panel();                                        // Zeile 1 erzeugen
    panCenterZeile1.setLayout(new FlowLayout(FlowLayout.LEFT));                 // Flowlayout linksbündig
    labStartZahl = new Label("Zahl: ");                                         // Label für Zahl beschriften
    panCenterZeile1.add(labStartZahl);                                          // Label Zahl auf Zeile 1 setzen

    tfStartZahl = new JTextField("",30);                                        // Textfeld für Zahl eingeben
    tfStartZahl.setHorizontalAlignment(SwingConstants.RIGHT);                   // Textfeld rechtsbündig
    tfStartZahl.setFont(new Font("Arial", 1, 15));                              // Textfeld Schriftart
    panCenterZeile1.add(tfStartZahl);                                           // Textfeld auf Zeile 1 setzen
    panCenter.add(panCenterZeile1);                                             // Zeile 1 auf Bereich Center setzen


    Panel panCenterZeile2 = new Panel();                                        // Zeile 2 erzeugen
    panCenterZeile2.setLayout(new FlowLayout(FlowLayout.LEFT));                 // Flowlayout linksbündig
    labVon = new Label("Von: ");                                                // Label Von beschriften
    panCenterZeile2.add(labVon);                                                // Label Von auf Zeile 2 setzen

    ButtonGroup btngZahlenVon = new ButtonGroup();
    JRadioButton rb1 = new JRadioButton( "Dezimal" );
    rb1.setSelected( true );
    panCenterZeile2.add(rb1);
    JRadioButton rb2 = new JRadioButton( "Binär" );
    panCenterZeile2.add(rb2);
    JRadioButton rb3 = new JRadioButton( "Oktal" );
    panCenterZeile2.add(rb3);
    JRadioButton rb4 = new JRadioButton( "Hexadezimal" );
    panCenterZeile2.add(rb4);
    btngZahlenVon.add( rb1 );
    btngZahlenVon.add( rb2 );
    btngZahlenVon.add( rb3 );
    btngZahlenVon.add( rb4 );
    panCenter.add(panCenterZeile2);                                             // Zeile 2 auf Bereich Center setzen


    Panel panCenterZeile3 = new Panel();                                        // Zeile 3 erzeugen
    panCenterZeile3.setLayout(new FlowLayout(FlowLayout.LEFT));                 // Flowlayout linksbündig
    labNach = new Label("Nach: ");                                              // Label Nach beschriften
    panCenterZeile3.add(labNach);                                               // Label Nach auf Zeile 3 setzen

    ButtonGroup btngZahlenNach = new ButtonGroup();
    JRadioButton rb5 = new JRadioButton( "Dezimal" );
    rb5.setSelected( true );
    panCenterZeile3.add(rb5);
    JRadioButton rb6 = new JRadioButton( "Binär" );
    panCenterZeile3.add(rb6);
    JRadioButton rb7 = new JRadioButton( "Oktal" );
    panCenterZeile3.add(rb7);
    JRadioButton rb8 = new JRadioButton( "Hexadezimal" );
    panCenterZeile3.add(rb8);
    btngZahlenNach.add( rb5 );
    btngZahlenNach.add( rb6 );
    btngZahlenNach.add( rb7 );
    btngZahlenNach.add( rb8 );
    panCenter.add(panCenterZeile3);                                             // Zeile 3 auf Bereich Center setzen


    Panel panCenterZeile4 = new Panel();                                        // Zeile 4 erzeugen
    panCenterZeile4.setLayout(new FlowLayout(FlowLayout.LEFT));                 // Flowlayout linksbündig
    labErgebnis = new Label("Ergebnis: ");                                      // Label Ergebnis beschriften
    labErgebnis.setFont(new Font("Arial",1,18));                                // Schriftart für die Überschrift
    panCenterZeile4.add(labErgebnis);                                           // Label Ergebnis auf Zeile 4 setzen
    panCenter.add(panCenterZeile4);
    
    this.add("Center",panCenter);                                               // Bereich Center anzeigen




    Panel panSouth = new Panel();                                               // neuen Bereich Süden erzeugen
    panSouth.setLayout(new FlowLayout(FlowLayout.RIGHT));                       // Flowlayout rechtsbündig

    btnBerechnen = new JButton("Berechnen");                                    // Buttons Berechnen
    btnBerechnen.setBackground(Color.GREEN);                                    // Buttonfarbe grün
    btnBerechnen.addActionListener(this);                                       // Button Berechnen für Ereignisse reservieren
    panSouth.add(btnBerechnen);                                                 // Button Berechnen
    btnBeenden = new JButton("Beenden");                                        // Buttons Beenden
    btnBeenden.setBackground(Color.RED);                                        // Buttonfarbe rot
    btnBeenden.addActionListener(this);                                         // Button Beenden für Ereignisse reservieren
    panSouth.add(btnBeenden);                                                   // Button Beenden auf Bereich Süden setzen

    this.add("South",panSouth);                                                 // Bereich Süden anzeigen
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren

  public void actionPerformed(ActionEvent e){                                   // Methode für Button
    if(e.getSource() == btnBeenden){                                            // Wenn Ende-Button
      System.exit(0);                                                           // Programm Ende
    }
  }

  // Ende Ereignisprozeduren

  public static void main(String[] args) {
    new ZahlenSystemRechner("ZahlenSystemRechner von Marco Litterst");          // Kopfzeile mit Überschrift versehen
  }
}
```

Nun meine Frage, kann mir wer die Ereignisbearbeitung programmieren? Ich schaffe es leider momentan nicht und bin schon die ganze Zeit daran gewesen die Oberflächengeschichte zu erlernen?!

Ihr würdet mir super behilflich sein!


Danke im voraus.
Greetz

Marco


----------



## flashray (26. Januar 2006)

Hallo Marco,

schau mal hier:

Real's Java - Convert from type X to type Y

Vg Erdal


----------

