# GUI für Zinsrechner



## Mo (29. Jun 2004)

Hallo,

hab mal ne kurze Frage bezüglich einem Programm, das ich als Anfänger geschrieben habe:

```
/** Creates a new instance of Zinsen */
import java.io.*;
import java.*;
public class Zinsen  {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException { 
        // TODO code application logic here
        InputStreamReader inStream = new InputStreamReader( System.in );
        BufferedReader ein = new BufferedReader( inStream );
  
        double Startkapital=0;
        double Zins;
        double Zinssatz=0;
        int    Jahre;
        double Zinsen;
       
       
        System.out.print ("Zinsrechner: ");
        System.out.println ();
        System.out.print ("Geben Sie das Startkapital ein: ");
        Startkapital = Integer.valueOf(ein.readLine()).intValue();
        System.out.print ("Geben Sie den Zinssatz ein: ");
        Zinssatz = Integer.valueOf(ein.readLine()).intValue();
        
      
        Zins = (Zinssatz/100)+1;
        System.out.print ("Startkapital: ");
        System.out.println (Startkapital);
             
        for (Jahre=1; Jahre<11; Jahre++)
        { 
          Startkapital = Startkapital*Zins;
          System.out.println (Jahre+" .Jahr");
          System.out.println (Startkapital);
          
        }
    
       }
    }
```

>>>> Ich muss jetzt hierzu noch ein GUI machen und komme nicht weiter...

Kann mir bitte jemand helfen ?!?!?!

Wäre super...

Gruß

Mo

_edit deathbyclown: code tags_


----------



## bygones (29. Jun 2004)

was genau ist dein problem ?
weißt du nicht wie swing / awt gehen ? dann schau in bücher

oder gibts ne spezielle frage ?


----------



## Mo (29. Jun 2004)

Hallo,

hab schon versucht die GUI zu erstellen, komme aber nicht weiter, da ich gar nicht verstehe was ich genau machen muss. Das Programm und so habe ich ja hinbekommen, aber ich weiss nicht wie ich ein dazu passendes GUI erstellen muss. Bitte um Hilfe.

Danke


----------



## Freakazoid (29. Jun 2004)

schau mal ins handbuch der java programmierung oder gotojava,da findest du mit sicherheit einfache kleine beispiele und erklärungen dazu....
also erstmal ist die frage applet oder applikation....
hier ein kleines beispiel programm,mit einem JLabel.....

```
import javax.swing.*;          
import java.awt.event.*;
// Noch ein import:
import java.awt.*;


/**
	Hier wird gezeigt, wie mit Hilfe von Objekten der Klasse JLabel feste Texte
	innerhalb eines Fensters erzeugt werden.
*/

class windowEventHandler extends WindowAdapter
{
	
	// Diese Methode wird aufgerufen, wenn das Fenster geschlossen wird
	public void windowClosing (WindowEvent e)
    { 
 		System.out.println ("Das Fenster wird geschlossen und das Programm beendet!");
   		System.exit(0);
    }
}




/** 	Diese Klasse erstellt ein Fenster für ein Windows-Programm.
		Das Fenster hat eine Titelzeile und kann verschoben und
		in der Größe geändert werden (per Maus und Tastatur!).
		Das Fenster wird wie übliche Windows-Programme geschlossen.
	
*/
public class p2_01_5
{

	public static void main (String[] args)
	{
        JFrame frame = new JFrame("Hallo Welt! - Endlich ein Fenster!");
		
		// Ein Objekt zur Behandlung von Fensterereignissen für das
		// JFrame-Objekt anmelden:
		windowEventHandler handler = new windowEventHandler();
		frame.addWindowListener (handler);	// handler 'abonniert' Ereignisse von frame
        
        Container c = frame.getContentPane();
        c.add (new JLabel ("Java macht endlich Spaß!"));
        frame.pack ();	// Anfangs-Fenstergröße automatisch an Fensterinhalt anpassen
        
        frame.setVisible(true);
		
		System.out.println ("Die main()-Methode wird jetzt beendet.");
	}
}
```


----------



## Ecky (29. Jun 2004)

Hallo!
Ich hab vor einiger Zeit mal native ein MwSt-Applet erstellt (bin aber selber noch blutiger Anfänger).
Das beinhaltet ein paar AWT-Komponente.
Ist allerdings ein Applet und somit brauchst du z.B. den Internet Explorer.
Also Applikation, ist es wie ich finde, noch etwas komplizierter.
Da musst du dich wirklich mal in einem Buch belesen.
Unter Frame, Window, Dialog, bzw wenn du es lieber als Swing haben möchtest, dann JFrame,JDialog etc.


Oder du erstellst einfach alles in einem Programm, mit dem du die GUI per Drag&Drop erstellst.
JBuilder usw.
Da brauchst du dich mit der Oberfläche nicht weiter rumschlagen.
Da gibt es auch ein paar kostenlose Programme die das können.
Mußt du mal im Forum fragen.

Hier mal mein Applet:
(achja, die Ereignissabfrage ist veraltet. hab ich damals für die Kompatibilität genommen und war auch schön einfach).
Mit der Neuen hab ich mich nicht beschäftigt, dass mach ich über ein Entwicklertool.
Da findet sich bestimmt jemand aus dem Forum, der mein Applet mit der neueren Ereignisabfrage umschreibt.


```
import java.awt.*;
import java.applet.*;

public class MwstApplet extends Applet {
// Folgende Datenelemente sind wichtig und werden deklariert
// AWT Komponente für GUI
Label text_label;
TextField EingabeText;
Button BerechneKnopf;
TextField AusgabeText;
Checkbox bruttoRB;
CheckboxGroup checkbox_gruppe;
Checkbox nettoRB;
Label InfoText;
Label InfoText1;


// jetzt werden die Objekte deklariert
public void init() {
	super.init();
	setLayout(null);   // somit wird auf die reshape Werte reagiert,(x,y,breite,höhe)
	resize(330, 212);  // Applet mit dieser Größe wird erstellt

	text_label = new Label("Geben Sie bitte einen Betrag ein !");
	text_label.reshape(34, 36, 356, 26); //Label wird gezeichnet an Position x34, y36, Breite356, Höhe26
	text_label.setFont(new Font("Dialog", Font.BOLD, 16));  // Schriftart Dialog,Fett,Größe 16
	add(text_label);

	InfoText = new Label("Es wird der");
	InfoText.reshape(42, 100, 99, 17);
	add(InfoText);

	InfoText1 = new Label("Betrag ermittelt");
	InfoText1.reshape(42, 171, 99, 17);
	add(InfoText1);

	EingabeText = new TextField();
	EingabeText.reshape(180, 71, 122, 22);
	add(EingabeText);

	AusgabeText = new TextField();
	AusgabeText.setEditable(false);   // Editieren vom Textfeld nicht möglich, kann nur gelesen werden
	AusgabeText.reshape(181, 168, 120, 23);  // Größe des Textfeldes, Erklärung siehe Z.25
	AusgabeText.setForeground(new Color(0));
	add(AusgabeText);

	BerechneKnopf = new Button("Berechne");
	BerechneKnopf.reshape(181, 120, 121, 26);
	add(BerechneKnopf);

	checkbox_gruppe = new CheckboxGroup(); // Checkboxen müssen einer Gruppe zugefügt werden
	bruttoRB = new Checkbox("Brutto- bzw.", checkbox_gruppe, true); // soll beim starten ausgewählt sein
	bruttoRB.reshape(36, 130, 90, 10);    // Größe diese Checkbox
	add(bruttoRB);
	nettoRB = new Checkbox("Netto-", checkbox_gruppe, false); // 2.Auswahlcheckbox
	nettoRB.reshape(36, 150, 60, 10);
	add(nettoRB);
}



public boolean handleEvent(Event event) {
	if (event.target == BerechneKnopf && event.id == Event.ACTION_EVENT) {  // &&=beide Bedingungen müssen erfüllt sein
		BerechneKnopf_Clicked();  // Methode BerechneKnopf_Clicked wird aufgerufen
        return true;  // kann auch weggelassen werden,da automatisch true übermittelt wird
	}
	return super.handleEvent(event);  // ist als Else Anweisung zu verstehen
}


public void BerechneKnopf_Clicked() {

	String betrag_string;
Double e1;
Double e2;

    double eingabewert;
    double ausgabewert;
    boolean status;

    e1 = Double.valueOf(EingabeText.getText());
    eingabewert = e1.doubleValue();
    status = bruttoRB.getState();
    if (status)
        ausgabewert = eingabewert * 1.16;
    else
        ausgabewert = eingabewert / 1.15;

    e2 = new Double(ausgabewert);
    betrag_string = e2.toString();
    AusgabeText.setText(betrag_string);
}

}
```


Dazu folgenden HTML-Code


```
<html>
<head>
<title>Applet Taschenrechner</title>
</head>
<body>


<applet code = "MwstApplet.class" align="center" width="330" height="300" hspace="50" vspace="50">
</applet></p>
</body>
</html>
```


Wenn du Online dir ein Buch downloaden möchtest, dann empfehle ich das.
Ist relativ verständlich geschrieben: (sind aber 11MB)

http://www.galileocomputing.de/openbook/javainsel3/javainsel_150001.htm

Hoffe, dir hilft das etwas weiter!
tschau


----------

