# Negative Werte abfangen



## mics123 (18. Dez 2004)

Moin!

Habe einen Währungsrechner mit Windowsoberfläche programmiert.

Es gibt zwei Aktenreiter, einer davon heißt "Kurse".
Dort werden die Umrechnungskurse gespeichert, mit denen gerechnet werden soll.
Zum Speichern gibt es einen Button "Speichern".

Wenn ich in einem Kursfeld, meinetwegen EURO > US-DOLLAR, ein "e" eingebe, kommt ne Fehlermeldung "Keine gültigen Kurse."

Soweit, so gut.

Ich kann aber auch negative Kurse, also z.B. -3 oder auch ne 0 eingeben ... und das will ich abfangen!
Es soll dann nicht gespeichert werden können ... evtl. soll der Benutzer auch solange nicht aus dem fehlerhaften Feld kommen, bis er einen korrekten Kurs eingegeben hat.

Kann mir einer sagen wie das geht?

Hier der entsprechende Quellcode:

```
private void Speichern()
{
if (speichern == true)
{
// Die benötigten Variable werden deklariert und initialisiert
String kurs_leer = "";
double kurs_dollar = 0;
double kurs_pfund = 0;
double kurs_franken = 0;
double kurs_hkd = 0;
double kurs_yen = 0;
double kurs_dm = 1.95583;

// Es wird ein Array benötigt ... und dieses Array wird hier erzeugt
double[] KursArray = new double[6];

// Hier wird geprüft, ob Kurse gültige double-Werte sind ... Schreiben in Array
try
{
// Umrechnung Euro in Dollar
kurs_leer = edit_euro_dollar.getText();
kurs_dollar = Double.valueOf( kurs_leer).doubleValue();
KursArray[0] = kurs_dollar;

// Umrechnung Euro in Pfund
kurs_leer = edit_euro_pfund.getText();
kurs_pfund = Double.valueOf( kurs_leer).doubleValue();
KursArray[1] = kurs_pfund;

// Umrechnung Euro in Franken
kurs_leer = edit_euro_franken.getText();
kurs_franken = Double.valueOf( kurs_leer).doubleValue();
KursArray[2] = kurs_franken;

// Umrechnung Euro in Hong Kong Dollar
kurs_leer = edit_euro_hkd.getText();
kurs_hkd = Double.valueOf( kurs_leer).doubleValue();
KursArray[3] = kurs_hkd;

// Umrechnung Euro in Yen
kurs_leer = edit_euro_yen.getText();
kurs_yen = Double.valueOf( kurs_leer).doubleValue();
KursArray[4] = kurs_yen;

// Umrechunng Euro in DM ... da auf jeden Fall double-Wert (Grund: readOnly)
edit_euro_dm.getText();
KursArray[5] = kurs_dm;

try
{
ObjectOutputStream ou = new ObjectOutputStream (new FileOutputStream ("Kursdatei.obj"));
ou.writeObject(KursArray);
ou.flush ();
ou.close ();

// Hinweis, dass die Kurse gespeichert wurden
label_fehler_kurse.setText("Kurse gespeichert!");
label_fehler_kurse.update();
}

/* Wenn Kurs-Datei nicht gespeichert werden konnte, vielleicht wegen des aktiv. Schreibschutzes ... Fehlermeldung ausgeben!
*/
catch (Exception E6)
{
label_fehler_kurse.setText("Fehler beim Speichern. Schreibschutz aktiviert?");
}
}

// Fehlermeldung auch, wenn die eingegeben Kurse trotz Hinweis gespeichert werden sollen
catch (Exception E7)
{
label_fehler_kurse.setText("Kurse wurden nicht gespeichert. Bitte ALLE Kurse korrekt eingeben. ");
}
}
}
```

Gruß und Danke,
Michael


----------



## Reality (18. Dez 2004)

Mit einer if-Anweisung.

Liebe Grüße
Reality


----------



## Dreezard (18. Dez 2004)

also ein wert kleiner null wird keine exception auslösen. Das wäre auch nicht notwendig. Du könntest das doch einfach mit
if(wert <= 0) {...}
überprüfen und darauf entsprechend reagieren

too late...


----------



## mics123 (18. Dez 2004)

Danke erstmal.

if-Anweisung hört sich gut an ... aber wo kann ich die am besten einb auen?


----------



## Dreezard (18. Dez 2004)

Also bei jeder Zeile wie:

```
kurs_leer = edit_euro_dollar.getText(); 
kurs_dollar = Double.valueOf( kurs_leer).doubleValue(); 
KursArray[0] = kurs_dollar;
```

Also:

```
kurs_leer = edit_euro_dollar.getText(); 
kurs_dollar = Double.valueOf( kurs_leer).doubleValue(); //Die zeile kann man auch : Double.parseDouble(kurs_leer);  schreiben
if(kurs_dollar <= 0) {
...
}
else
     KursArray[0] = kurs_dollar;
```


----------



## mics123 (18. Dez 2004)

Habe ich gemacht, der Code sieht jetzt so aus:


```
try
			{
				// Umrechnung Euro in Dollar
				
				kurs_leer = edit_euro_dollar.getText();
				kurs_dollar = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_dollar <= 0)
					{
					label_fehler_kurse.setText("Bitte keine negativen Werte und auch keine 0 eingeben");
					speichern = false;
					}
				else
				KursArray[0] = kurs_dollar;
				
				// Umrechnung Euro in Pfund
			
				kurs_leer = edit_euro_pfund.getText();
				kurs_pfund = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_pfund <= 0)
					{
					label_fehler_kurse.setText("Bitte keine negativen Werte und auch keine 0 eingeben");
					speichern = false;
					}
				else
				KursArray[1] = kurs_pfund;
				
				// Umrechnung Euro in Franken
			
				kurs_leer = edit_euro_franken.getText();
				kurs_franken = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_franken <= 0)
					{
					label_fehler_kurse.setText("Bitte keine negativen Werte und auch keine 0 eingeben");
					speichern = false;
					}
				else
				KursArray[2] = kurs_franken;
				
				// Umrechnung Euro in Hong Kong Dollar
				
				kurs_leer = edit_euro_hkd.getText();
				kurs_hkd = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_hkd <= 0)
					{
					label_fehler_kurse.setText("Bitte keine negativen Werte und auch keine 0 eingeben");
					speichern = false;
					}
				else
				KursArray[3] = kurs_hkd;
				
				// Umrechnung Euro in Yen
			
				kurs_leer = edit_euro_yen.getText();
				kurs_yen = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_yen <= 0)
					{
					label_fehler_kurse.setText("Bitte keine negativen Werte und auch keine 0 eingeben");
					speichern = false;
					}
				else
				KursArray[4] = kurs_yen;
				
				// Umrechunng Euro in DM ... da auf jeden Fall double-Wert (Grund: readOnly)
				edit_euro_dm.getText();
				KursArray[5] = kurs_dm;
				
				try
				{
					ObjectOutputStream ou = new ObjectOutputStream (new FileOutputStream ("Kursdatei.obj"));
					ou.writeObject(KursArray);
					ou.flush ();
					ou.close ();
				
					// Hinweis, dass die Kurse gespeichert wurden
					label_fehler_kurse.setText("Kurse gespeichert!");
					label_fehler_kurse.update();
				}
			
				/* Wenn Kurs-Datei nicht gespeichert werden konnte, vielleicht wegen des aktiv. Schreibschutzes
				   Fehlermeldung ausgeben!
				*/
				catch (Exception E6)
				{
					label_fehler_kurse.setText("Fehler beim Speichern. Schreibschutz aktiviert?");
				}
			}
		
			// Fehlermeldung auch, wenn die eingegeben Kurse trotz Hinweis gespeichert werden sollen
			catch (Exception E7)
			{
				label_fehler_kurse.setText("Kurse wurden nicht gespeichert. Bitte ALLE Kurse korrekt eingeben. "); 
			}
		}
	}
```

Die Werte werden aber noch immer gespeichert ... was kann ich tun?


----------



## Dreezard (18. Dez 2004)

in der if-bedingung setzt du 'speichern' auf false. Das solltest du beim speichern auch abfragen. Also einfach:

```
if(speichern) {
   ObjectOutputStream ou = new ObjectOutputStream (new FileOutputStream ("Kursdatei.obj"));
   ou.writeObject(KursArray); 
   ou.flush (); 
   ou.close (); 
       
   // Hinweis, dass die Kurse gespeichert wurden 
   label_fehler_kurse.setText("Kurse gespeichert!"); 
   label_fehler_kurse.update(); 
}
```


----------



## mics123 (18. Dez 2004)

Hmm ... daran lag es nicht, das habe ich nun überall geändert und jeweils immer speichern auf true gesetzt,

Aber ich habe weiter oben noch 

```
private void b_speichern_click(Object source, Event e)
		{
		speichern = true;
		Speichern();
		speichern = false;
		}
```

Muss ich da auch irgendwas ändern?


----------



## mics123 (18. Dez 2004)

Ah, ich habe gerade gemerkt dass er die Werte gar nicht abspeichert, sondern die entsprechenden Kurse immer wieder auf 0 setzt. So ist´s ja okay!  Vielen Dank dafür!

Aber ich habe noch ein anderes Problem:
Wenn ich einen negativen Kurs eingebe, nicht beende und dann nach einem Klick auf einen anderen Aktenreiter mit Namen "Umrechnen" klicke, die Währung mit der fehlerhaften Eingabe auswähle und umrechnen will, rechnet er trotzdem um ... und zwar mit dem negativen Wert!!!! Kann ich das auch irgendwie verhindern?


----------



## Dreezard (18. Dez 2004)

Also um das Problem nachzuvollziehen brauchte man den code.


----------



## mics123 (18. Dez 2004)

Okay ...

```
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;
import java.io.*;
import java.math.BigDecimal;

/**
 * Diese Klasse kann eine variable Anzahl von Parameter auf der Befehlszeile
 * entgegennehmen. Die Programmausführung startet mit der Methode main(). Der
 * Klassenkonstruktor wird nicht aufgerufen, bevor nicht ein Objekt vom Typ 'Form1'
 * in der Methode main() erstellt wird.
 */
public class Form1 extends Form
{
	// Kurse bei Programmstart noch nicht speichern
	public boolean speichern = false;
		
	public Form1()
	{
		// Erforderlich für die Unterstützung des Visual J++-Formulardesigners
		initForm();		
	
	if (rb_autoload.getChecked() == true)
	{
		// Methode Laden aufrufen
		Laden();
	}
}

	/**
	 * Form1 überlädt dispose, damit es die Komponentenliste
	 * bereinigen kann.
	 */
	
	// Automatisches Speichern der Kurse beim Klick auf (X)
	public void dispose()
	{
		try
		{	
			speichern = true;
			Speichern();
			speichern = false;
		}
		
		catch (Exception E1)
		{
			label_fehler_kurse.setText("Objekt konnte nicht gespeichert werden, Umrechnungskurse ueberpruefen.");
		}
		
		{
			Application.exit();	
		}		
	}
	
	/* 
	 * Steuerung des Betragsfeldes
	 */
	private void edit_betrag_textChanged(Object source, Event e)
	{
		// Ergebnisfeld loeschen
		label_ergebnis.setText("");
		
		// Deklarieren und intitialisieren der Variablen
		String string = "";
		double doublewert = 0;
	
		// Prüfen ob Eingabe ein double ist
		try
			{
			doublewert = Double.valueOf( edit_betrag.getText() ).doubleValue();
			label_fehler.setText("");
			}
		
		// ansonsten Fehlermeldung ausgeben
		catch (Exception E2)
			{
			label_fehler.setText("Bitte nur Zahlen eingeben.");
			}
		}	
	
	/*
	 * Bei Klick auf das Bild mit dem Taschenrechner soll umgerechnet werden ...
	 */ 
	private void pictureBox1_click(Object source, Event e)
		{
		// Die benötigten Variable werden deklariert und initialisiert
		double kurs = 0;
		double kurs1 = 0;
		double kurs2 = 0;
		double ergebnis = 0;
		double einheiten = 1;
		
		String von = "";
		String nach = "";
		
		boolean fehler = false;
		
		// Ist der eingegebene Wert eine korrekte Zahl?
		try
		{
			einheiten = Double.valueOf(edit_betrag.getText() ).doubleValue();
			label_fehler.setText("");
		}
		// Wenn nicht ... Fehlermeldung ausgeben
		catch (Exception E3)
		{
			label_fehler.setText("Bitte nur Zahlen eingeben ...");
			fehler = true;
		}
		
		/*
		 * Jetzt werden die von- und nach-Währungen mit Aktionen belegt ... d.h. was soll passieren wenn
	     * dieser oder jener RadioButton aktiviert wird?
		 */
		
		try
		{
			// Umrechnung Euro --> andere Währung
			if(rb_euro_basis.getChecked () == true)
			{
					von = "EUR";
											
				// Umrechnung Euro --> Euro
				if (rb_euro_ziel.getChecked() == true)
				{
					kurs = 1;
					nach = "EUR";
				}
				
				// Umrechung Euro nach US-Dollar
				else if (rb_dollar_ziel.getChecked() == true)
				{
					kurs = Double.valueOf( edit_euro_dollar.getText() ).doubleValue();
					nach = "USD";
				}
				
				// Umrechnung Euro nach Britische Pfund
				else if (rb_pfund_ziel.getChecked() == true)
				{
					kurs = Double.valueOf( edit_euro_pfund.getText() ).doubleValue();
					nach = "GBP";
				}
					
				// Umrechnung Euro nach Schweizer Franken
				else if (rb_franken_ziel.getChecked() == true)
				{
					kurs = Double.valueOf( edit_euro_franken.getText() ).doubleValue();
					nach = "CHF";
				}
					
				// Umrechnung Euro nach Ukrainische Dollar
				else if (rb_hkd_ziel.getChecked() == true)
				{
					kurs = Double.valueOf( edit_euro_hkd.getText() ).doubleValue();
					nach = "HKD";
				}
				
				// Umrechnung Euro nach DM
				else if (rb_dm_ziel.getChecked() == true)
				{
					kurs = Double.valueOf( edit_euro_dm.getText() ).doubleValue();
					nach = "DM";
				}
				
				// Umrechnung Euro nach Yen
				else if (rb_yen_ziel.getChecked() == true)
				{
					kurs = Double.valueOf( edit_euro_yen.getText() ).doubleValue();
					nach = "YEN";
				}
				
				if (kurs > 0)
				{
					// Formel für Umrechnung
					ergebnis = einheiten * kurs;
					// Runden auf 2 Nachkommastellen
					BigDecimal gerundet1 = new BigDecimal(ergebnis);
					BigDecimal gerundet2 = gerundet1.setScale(2,BigDecimal.ROUND_HALF_UP);
					// Ergebnis ausgeben
					label_ergebnis.setText(einheiten + " " + von + " entsprechen " + gerundet2 + " " + nach + ".");
				}
				
				// Wenn der Umrechungskurs 0 ist ... Fehlermeldung ausgeben
				else
				{
					label_fehler.setText("Umrechnungskurs ist 0 oder negativ!");
				}
			}
		
			// Umrechnungen "Nicht-Euro-Währung" in "Nicht-Euro-Währung"
			else if (rb_euro_basis.getChecked() == false)
			{
				// von "Nicht-Euro" nach Euro
				if (rb_euro_ziel.getChecked() == true)
				{
						nach = "EUR";
									
					// von "Nicht-Euro" in US-Dollar
					if (rb_dollar_basis.getChecked() == true) 
					{
						kurs = Double.valueOf(edit_euro_dollar.getText() ).doubleValue();
						von = "USD";
						
					}
					
					// von "Nicht-Euro" in Brit. Pfund
					else if (rb_pfund_basis.getChecked() == true)
					{
						kurs = Double.valueOf(edit_euro_pfund.getText() ).doubleValue();
						von = "GBP";
					}
					
					// von "Nicht-Euro" in Schw. Franken
					else if (rb_franken_basis.getChecked() == true)
					{
						kurs = Double.valueOf(edit_euro_franken.getText() ).doubleValue();
						von = "CHF";
					}
					
					// von "Nicht-Euro" in Hong Kong Dollar
					else if (rb_hkd_basis.getChecked() == true)
					{
						kurs = Double.valueOf(edit_euro_hkd.getText() ).doubleValue();
						von = "HKD";
					}
					
					// von "Nicht-Euro" in DM
					else if (rb_dm_basis.getChecked() == true)
					{
						kurs = Double.valueOf(edit_euro_dm.getText() ).doubleValue();
						von = "DM";
					}
					
					// von "Nicht-Euro" in Yen
					else if (rb_yen_basis.getChecked() == true)
					{
						kurs = Double.valueOf(edit_euro_yen.getText() ).doubleValue();
						von = "YEN";
					}
					
				   // Solange der Kurs nicht 0 ist, kann das Ergebnis berechnet werden und
				   // Ergebnisfeld loeschen
				   label_ergebnis.setText("");
					
					if (kurs > 0)
					{
						// Formeln für Umrechnung (inkl. Kehrwert)
						kurs = 1 / kurs;
						ergebnis = einheiten * kurs;
						// Runden auf 2 Nachkommastellen
						BigDecimal gerundet1 = new BigDecimal(ergebnis);
						BigDecimal gerundet2 = gerundet1.setScale(2,BigDecimal.ROUND_HALF_UP);
						// Ergebnis ausgeben
						label_ergebnis.setText(einheiten + " " + von + " entsprechen " + gerundet2 + " " + nach + ".");
					}
					
					// Wenn der Umrechnungskurs 0 sein sollte ... Fehlermeldung ausgeben
					else
					{
						label_fehler.setText("Umrechnungskurs ist 0 oder negativ!");
					}
				}
			
				// Umrechnungen best. "Nicht-Euro-Währung" in "Nicht-Euro-Währung"
				else if (rb_euro_ziel.getChecked() == false)
				{
					// von Dollar nach "irgendwas"
					if (rb_dollar_basis.getChecked() == true)
					{
						kurs1 = Double.valueOf(edit_euro_dollar.getText() ).doubleValue();
						von = "USD";
					}
				
					// von nach Brit. Pfund nach "irgendwas" 
					if (rb_pfund_basis.getChecked() == true)
					{
						kurs1 = Double.valueOf(edit_euro_pfund.getText() ).doubleValue();
						von = "GBP";
					}
				
					// von Schw. Franken nach "irgendwas"
					if (rb_franken_basis.getChecked() == true)
					{
						kurs1 = Double.valueOf(edit_euro_franken.getText() ).doubleValue();
						von = "CHF";
					}
				
					// von Hong Kong Dollar nach "irgendwas"
					if (rb_hkd_basis.getChecked() == true)
					{
						kurs1 = Double.valueOf(edit_euro_hkd.getText() ).doubleValue();
						von = "HKD";
					}
				
					// von DM nach "irgendwas"
					if (rb_dm_basis.getChecked() == true)
					{
						kurs1 = Double.valueOf(edit_euro_dm.getText() ).doubleValue();
						von = "DM";
					}
				
					// von Yen nach "irgendwas"
					if (rb_yen_basis.getChecked() == true)
					{
						kurs1 = Double.valueOf(edit_euro_yen.getText() ).doubleValue();
						von = "YEN";
					}
				
					// und die Umrechnungen "andersherum" ...
					
					// von "irgendwas" nach Dollar
					if (rb_dollar_ziel.getChecked() == true)
					{
						kurs2 = Double.valueOf(edit_euro_dollar.getText() ).doubleValue();
						nach = "USD";
					}
				
					// von "irgendwas" nach Brit. Pfund
					if (rb_pfund_ziel.getChecked() == true)
					{
						kurs2 = Double.valueOf(edit_euro_pfund.getText() ).doubleValue();
						nach = "GBP";
					}
				
					// von "irgendwas" Schw. Franken
					if (rb_franken_ziel.getChecked() == true)
					{
						kurs2 = Double.valueOf(edit_euro_franken.getText() ).doubleValue();
						nach = "CHF";
					}
				
					// von "irgendwas" nach Hong Kong Dollar
					if (rb_hkd_ziel.getChecked() == true)
					{
						kurs2 = Double.valueOf(edit_euro_hkd.getText() ).doubleValue();
						nach = "HKD";
					}
				
					// von "irgendwas" nach DM
					if (rb_dm_ziel.getChecked() == true)
					{
						kurs2 = Double.valueOf(edit_euro_dm.getText() ).doubleValue();
						nach = "DM";
					}
					
					// von "irgendwas" nach Yen
					if (rb_yen_ziel.getChecked() == true)
					{
						kurs2 = Double.valueOf(edit_euro_yen.getText() ).doubleValue();
						nach = "YEN";
					}
					
					// Solange der Kurs nicht 0 ist, kann das Ergebnis berechnet werden und
				    // Ergebnisfeld loeschen
				    label_ergebnis.setText("");
					
					// So, und wenn der Umrechungskurs von Fremdwährung nach Euro nicht 0 ist ..			
					if (kurs1 !=0)
					{
						// Formeln für die Umrechnung (inkl. Kehrwert)
						kurs1 = 1 / kurs1;
						ergebnis = einheiten * kurs1 * kurs2;
						// Runden auf 2 Nachkommastellen
						BigDecimal gerundet1 = new BigDecimal(ergebnis);
						BigDecimal gerundet2 = gerundet1.setScale(2,BigDecimal.ROUND_HALF_UP);
						// Ergebnis ausgeben
						label_ergebnis.setText(einheiten + " " + von + " entsprechen " + gerundet2 + " " + nach + ".");
					}	
					
					// Und wenn der Umrechnungskurs 0 sein sollte ... Fehlermeldung ausgeben 
					else
					{
					label_fehler.setText("Umrechnungskurs ist 0 oder negativ!");
					}
				}
			}	
		}
		// Wenn keine Wechselkurse vorhanden ... Fehlermeldung ausgeben
		catch (Exception E4)
		{
			label_fehler.setText("Keine Wechselkurse vorhanden.");
			fehler = true;
		}
		
		// Wenn ein Fehler aufgetreten ist
		if (fehler == true)
		{
			// Ergebnisfeld wieder löschen, nach richtiger Eingabe nicht mehr aktuell
			label_ergebnis.setText("");
		}
		
	}
	
	/*	Karteikarte "Kurse"
		Hier werden die Umrechnungskurse eingegeben, es wird jeweils überprüft ob es sich auch um
		double-Werte handelt, wenn nicht wird eine Fehlermeldung ausgegeben. Das Textfeld wird aktualisiert.
	 */
	
	// Euro nach US-Dollar
	private void edit_euro_dollar_textChanged(Object source, Event e)
		{
			String string = "";
			double doublewert = 0;
			
			try
			{
				doublewert = Double.valueOf(edit_euro_dollar.getText() ).doubleValue();
				label_fehler_kurse.setText("");
				label_fehler.setText("");
			}
			
			catch (Exception E5)
			{
				label_fehler_kurse.setText("Bitte einen gueltigen Kurs eingeben, z.B. 0.8984");
			}
				edit_euro_dollar.update();
			}

			
	// Euro nach Pfund
	private void edit_euro_pfund_textChanged(Object source, Event e)
		{
			String string = "";
			double doublewert = 0;
			
			try
			{
				doublewert = Double.valueOf(edit_euro_pfund.getText() ).doubleValue();
				label_fehler_kurse.setText("");
				label_fehler.setText("");
			}
			
			catch (Exception E5)
			{
				label_fehler_kurse.setText("Bitte einen gueltigen Kurs eingeben, z.B. 0.8984");
			}
				edit_euro_pfund.update();
			}

	// Euro nach Franken
	private void edit_euro_franken_textChanged(Object source, Event e)
		{
			String string = "";
			double doublewert = 0;
			
			try
			{
				doublewert = Double.valueOf(edit_euro_franken.getText() ).doubleValue();
				label_fehler_kurse.setText("");
				label_fehler.setText("");
			}
			
			catch (Exception E5)
			{
				label_fehler_kurse.setText("Bitte einen gueltigen Kurs eingeben, z.B. 0.8984");
			}
				edit_euro_franken.update();
			}

	// Euro nach DM
	private void edit_euro_dm_textChanged(Object source, Event e)
		{
			String string = "";
			double doublewert = 0;
			
			try
			{
				doublewert = Double.valueOf(edit_euro_dm.getText() ).doubleValue();
				label_fehler_kurse.setText("");
				label_fehler.setText("");
			}
			
			catch (Exception E5)
			{
				label_fehler_kurse.setText("Bitte einen gueltigen Kurs eingeben, z.B. 0.8984");
			}
			
			edit_euro_dm.update();
			}
	
	// Euro nach Hong Kong Dollar
	private void edit_euro_hkd_textChanged(Object source, Event e)
		{
			String string = "";
			double doublewert = 0;
			
			try
			{
				doublewert = Double.valueOf(edit_euro_hkd.getText() ).doubleValue();
				label_fehler_kurse.setText("");
				label_fehler.setText("");
			}
			
			catch (Exception E5)
			{
				label_fehler_kurse.setText("Bitte einen gueltigen Kurs eingeben, z.B. 0.8984");
			}
			
			edit_euro_hkd.update();
			}

	// Euro nach Yen
	private void edit_euro_yen_textChanged(Object source, Event e)
		{
			String string = "";
			double doublewert = 0;
			
			try
			{
				doublewert = Double.valueOf(edit_euro_yen.getText() ).doubleValue();
				label_fehler_kurse.setText("");
				label_fehler.setText("");
			}
			
			catch (Exception E5)
			{
				label_fehler_kurse.setText("Bitte einen gueltigen Kurs eingeben, z.B. 0.8984");
			}
			
			edit_euro_yen.update();
			}
	
	// Wenn der User auf Speichern klickt, wird die Methode Speichern aufgerufen ...
	private void b_speichern_click(Object source, Event e)
		{
		speichern = true;
		Speichern();
		speichern = false;
		}

	private void label_frage_click(Object source, Event e)
		{
		
		}

	private void label_fehler_click(Object source, Event e)
		{
		
		}

	private void cb_kurse_auto_click(Object source, Event e)
		{
		
		}

	private void radioButton1_checkedChanged(Object source, Event e)
		{
		
		}

	private void Form1_click(Object source, Event e)
		{
		
		}

	private void edit_euro_ukraine_textChanged(Object source, Event e)
		{
		
		}

	
	/**
	 * HINWEIS: Der folgende Code ist für den Visual J++-
	 * Formulardesigner erforderlich.  Er kann mit dem Formulareditor verändert werden.  Ändern Sie
	 * ihn nicht mit dem Codeeditor.
	 */
	Container components = new Container();
	TabControl Register = new TabControl();
	TabPage tabPageUmrechnen = new TabPage();
	TabPage tabKurse = new TabPage();
	TabPage tabPage3 = new TabPage();
	GroupBox Groupbox_Basiswaehrung = new GroupBox();
	RadioButton rb_dollar_basis = new RadioButton();
	Label label_frage = new Label();
	RadioButton rb_dm_basis = new RadioButton();
	RadioButton rb_franken_basis = new RadioButton();
	RadioButton rb_pfund_basis = new RadioButton();
	RadioButton rb_euro_basis = new RadioButton();
	GroupBox GroupBoxZielwaehrung = new GroupBox();
	RadioButton rb_dollar_ziel = new RadioButton();
	Edit edit_betrag = new Edit();
	RadioButton rb_dm_ziel = new RadioButton();
	RadioButton rb_hkd_ziel = new RadioButton();
	RadioButton rb_pfund_ziel = new RadioButton();
	RadioButton rb_euro_ziel = new RadioButton();
	Label label_ergebnis = new Label();
	Edit edit_euro_dm = new Edit();
	Edit edit_euro_franken = new Edit();
	Edit edit_euro_pfund = new Edit();
	Edit edit_euro_hkd = new Edit();
	Edit edit_euro_dollar = new Edit();
	RadioButton rb_hkd_basis = new RadioButton();
	Label label_euro_hkd = new Label();
	Label label_euro_dm = new Label();
	Label label_euro_franken = new Label();
	Label label_euro_pfund = new Label();
	RadioButton rb_franken_ziel = new RadioButton();
	Label label_euro_dollar = new Label();
	Label label_hinweis_kurse = new Label();
	Button b_speichern = new Button();
	Label label_lm_1 = new Label();
	Label label_lm_6 = new Label();
	Label label_lm_2 = new Label();
	Label label_lm_3 = new Label();
	Label label_fehler = new Label();
	Label label_fehler_kurse = new Label();
	Label label_lm5 = new Label();
	RadioButton rb_autoload = new RadioButton();
	PictureBox pictureBox1 = new PictureBox();
	Label label_hinweis_kurse2 = new Label();
	Label label2 = new Label();
	Label label_lm_4 = new Label();
	RadioButton rb_yen_basis = new RadioButton();
	RadioButton rb_yen_ziel = new RadioButton();
	Label label_euro_yen = new Label();
	Edit edit_euro_yen = new Edit();

	private void initForm()
		{
		// HINWEIS:  Dieses Formular speichert Ressourceninformationen in
		// einer externen Datei.  Ändern Sie nicht den Zeichenfolgenparameter für
		// einen der Funktionsaufrufe von resources.getObject().  Ändern Sie z.B.
		// nicht "foo1_location" in der folgenden Codezeile,
		// auch nicht, wenn sich der Name des Foo-Objekts ändert: 
		//	 foo1.setLocation((Point)resources.getObject("foo1_location"));

		IResourceManager resources = new ResourceManager(this, "Form1");
		this.setText("Waehrungsrechner von Michael Schmidt");
		this.setAutoScaleBaseSize(new Point(5, 13));
		this.setClientSize(new Point(723, 516));
		this.setIcon((Icon)resources.getObject("this_icon"));
		this.addOnClick(new EventHandler(this.Form1_click));

		Register.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		Register.setLocation(new Point(16, 8));
		Register.setSize(new Point(720, 520));
		Register.setTabIndex(0);
		Register.setText("tabControl1");
		Register.setSelectedIndex(1);

		tabPageUmrechnen.setBackColor(Color.GRAY);
		tabPageUmrechnen.setForeColor(Color.BLUE);
		tabPageUmrechnen.setLocation(new Point(4, 25));
		tabPageUmrechnen.setSize(new Point(712, 491));
		tabPageUmrechnen.setTabIndex(0);
		tabPageUmrechnen.setText("Umrechnen");

		tabKurse.setBackColor(Color.GRAY);
		tabKurse.setForeColor(Color.WHITE);
		tabKurse.setLocation(new Point(4, 25));
		tabKurse.setSize(new Point(712, 491));
		tabKurse.setTabIndex(1);
		tabKurse.setText("Kurse");

		tabPage3.setBackColor(Color.GRAY);
		tabPage3.setForeColor(Color.WHITE);
		tabPage3.setLocation(new Point(4, 25));
		tabPage3.setSize(new Point(712, 491));
		tabPage3.setTabIndex(2);
		tabPage3.setText("Liesmich");

		Groupbox_Basiswaehrung.setBackColor(Color.GRAY);
		Groupbox_Basiswaehrung.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		Groupbox_Basiswaehrung.setForeColor(Color.WHITE);
		Groupbox_Basiswaehrung.setLocation(new Point(8, 64));
		Groupbox_Basiswaehrung.setSize(new Point(168, 200));
		Groupbox_Basiswaehrung.setTabIndex(0);
		Groupbox_Basiswaehrung.setTabStop(false);
		Groupbox_Basiswaehrung.setText("Basiswährung");

		rb_dollar_basis.setLocation(new Point(16, 48));
		rb_dollar_basis.setSize(new Point(136, 24));
		rb_dollar_basis.setTabIndex(1);
		rb_dollar_basis.setText("US-Dollar");
		rb_dollar_basis.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		label_frage.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_frage.setForeColor(Color.WHITE);
		label_frage.setLocation(new Point(264, 72));
		label_frage.setSize(new Point(72, 24));
		label_frage.setTabIndex(2);
		label_frage.setTabStop(false);
		label_frage.setText("Betrag: ");
		label_frage.setTextAlign(HorizontalAlignment.CENTER);
		label_frage.addOnClick(new EventHandler(this.label_frage_click));

		rb_dm_basis.setLocation(new Point(16, 120));
		rb_dm_basis.setSize(new Point(136, 24));
		rb_dm_basis.setTabIndex(6);
		rb_dm_basis.setText("DM");
		rb_dm_basis.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		rb_franken_basis.setLocation(new Point(16, 96));
		rb_franken_basis.setSize(new Point(136, 23));
		rb_franken_basis.setTabIndex(3);
		rb_franken_basis.setText("Schw. Franken");
		rb_franken_basis.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		rb_pfund_basis.setLocation(new Point(16, 72));
		rb_pfund_basis.setSize(new Point(136, 24));
		rb_pfund_basis.setTabIndex(2);
		rb_pfund_basis.setText("Brit. Pfund");
		rb_pfund_basis.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		rb_euro_basis.setLocation(new Point(16, 24));
		rb_euro_basis.setSize(new Point(136, 24));
		rb_euro_basis.setTabIndex(0);
		rb_euro_basis.setTabStop(true);
		rb_euro_basis.setText("Euro");
		rb_euro_basis.setChecked(true);
		rb_euro_basis.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		GroupBoxZielwaehrung.setBackColor(Color.GRAY);
		GroupBoxZielwaehrung.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		GroupBoxZielwaehrung.setForeColor(Color.WHITE);
		GroupBoxZielwaehrung.setLocation(new Point(424, 64));
		GroupBoxZielwaehrung.setSize(new Point(168, 200));
		GroupBoxZielwaehrung.setTabIndex(1);
		GroupBoxZielwaehrung.setTabStop(false);
		GroupBoxZielwaehrung.setText("Zielwährung");

		rb_dollar_ziel.setLocation(new Point(16, 48));
		rb_dollar_ziel.setSize(new Point(136, 24));
		rb_dollar_ziel.setTabIndex(1);
		rb_dollar_ziel.setTabStop(true);
		rb_dollar_ziel.setText("US-Dollar");
		rb_dollar_ziel.setChecked(true);
		rb_dollar_ziel.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		edit_betrag.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		edit_betrag.setForeColor(Color.BLACK);
		edit_betrag.setLocation(new Point(224, 96));
		edit_betrag.setSize(new Point(152, 23));
		edit_betrag.setTabIndex(3);
		edit_betrag.setText("");
		edit_betrag.addOnTextChanged(new EventHandler(this.edit_betrag_textChanged));

		rb_dm_ziel.setLocation(new Point(16, 120));
		rb_dm_ziel.setSize(new Point(136, 24));
		rb_dm_ziel.setTabIndex(5);
		rb_dm_ziel.setText("DM");
		rb_dm_ziel.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		rb_hkd_ziel.setLocation(new Point(16, 144));
		rb_hkd_ziel.setSize(new Point(136, 24));
		rb_hkd_ziel.setTabIndex(4);
		rb_hkd_ziel.setText("Hong Kong Dollar");
		rb_hkd_ziel.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		rb_pfund_ziel.setLocation(new Point(16, 72));
		rb_pfund_ziel.setSize(new Point(136, 24));
		rb_pfund_ziel.setTabIndex(2);
		rb_pfund_ziel.setText("Brit. Pfund");
		rb_pfund_ziel.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		rb_euro_ziel.setLocation(new Point(16, 24));
		rb_euro_ziel.setSize(new Point(136, 24));
		rb_euro_ziel.setTabIndex(0);
		rb_euro_ziel.setText("Euro");
		rb_euro_ziel.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		label_ergebnis.setBackColor(Color.GRAY);
		label_ergebnis.setFont(new Font("Arial", 16.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		label_ergebnis.setForeColor(Color.ACTIVECAPTIONTEXT);
		label_ergebnis.setLocation(new Point(8, 312));
		label_ergebnis.setSize(new Point(584, 40));
		label_ergebnis.setTabIndex(5);
		label_ergebnis.setTabStop(false);
		label_ergebnis.setText("");
		label_ergebnis.setTextAlign(HorizontalAlignment.CENTER);

		edit_euro_dm.setBackColor(Color.INACTIVECAPTION);
		edit_euro_dm.setCursor(Cursor.NO);
		edit_euro_dm.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.HEAVY, false, false, false, CharacterSet.DEFAULT, 0));
		edit_euro_dm.setForeColor(Color.CONTROLDARKDARK);
		edit_euro_dm.setLocation(new Point(240, 232));
		edit_euro_dm.setSize(new Point(104, 23));
		edit_euro_dm.setTabIndex(5);
		edit_euro_dm.setText("1.95583");
		edit_euro_dm.setReadOnly(true);
		edit_euro_dm.addOnTextChanged(new EventHandler(this.edit_euro_dm_textChanged));

		edit_euro_franken.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		edit_euro_franken.setForeColor(Color.BLACK);
		edit_euro_franken.setLocation(new Point(240, 136));
		edit_euro_franken.setSize(new Point(104, 23));
		edit_euro_franken.setTabIndex(2);
		edit_euro_franken.setText("");
		edit_euro_franken.addOnTextChanged(new EventHandler(this.edit_euro_franken_textChanged));

		edit_euro_pfund.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		edit_euro_pfund.setForeColor(Color.BLACK);
		edit_euro_pfund.setLocation(new Point(240, 104));
		edit_euro_pfund.setSize(new Point(104, 23));
		edit_euro_pfund.setTabIndex(1);
		edit_euro_pfund.setText("");
		edit_euro_pfund.setAcceptsTab(true);
		edit_euro_pfund.addOnTextChanged(new EventHandler(this.edit_euro_pfund_textChanged));

		edit_euro_hkd.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		edit_euro_hkd.setForeColor(Color.BLACK);
		edit_euro_hkd.setLocation(new Point(240, 168));
		edit_euro_hkd.setSize(new Point(104, 23));
		edit_euro_hkd.setTabIndex(3);
		edit_euro_hkd.setText("");
		edit_euro_hkd.addOnTextChanged(new EventHandler(this.edit_euro_ukraine_textChanged));

		edit_euro_dollar.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		edit_euro_dollar.setForeColor(Color.BLACK);
		edit_euro_dollar.setLocation(new Point(240, 72));
		edit_euro_dollar.setSize(new Point(104, 23));
		edit_euro_dollar.setTabIndex(0);
		edit_euro_dollar.setText("");
		edit_euro_dollar.setAcceptsTab(true);
		edit_euro_dollar.addOnTextChanged(new EventHandler(this.edit_euro_dollar_textChanged));

		rb_hkd_basis.setLocation(new Point(16, 144));
		rb_hkd_basis.setSize(new Point(136, 24));
		rb_hkd_basis.setTabIndex(5);
		rb_hkd_basis.setText("Hong Kong Dollar");
		rb_hkd_basis.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		label_euro_hkd.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_euro_hkd.setLocation(new Point(8, 168));
		label_euro_hkd.setSize(new Point(208, 24));
		label_euro_hkd.setTabIndex(7);
		label_euro_hkd.setTabStop(false);
		label_euro_hkd.setText("Euro nach Hong Kong Dollar");

		label_euro_dm.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_euro_dm.setLocation(new Point(8, 232));
		label_euro_dm.setSize(new Point(184, 24));
		label_euro_dm.setTabIndex(11);
		label_euro_dm.setTabStop(false);
		label_euro_dm.setText("Euro nach DM");

		label_euro_franken.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_euro_franken.setLocation(new Point(8, 136));
		label_euro_franken.setSize(new Point(184, 24));
		label_euro_franken.setTabIndex(12);
		label_euro_franken.setTabStop(false);
		label_euro_franken.setText("Euro nach Schw. Franken");

		label_euro_pfund.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_euro_pfund.setLocation(new Point(8, 104));
		label_euro_pfund.setSize(new Point(184, 24));
		label_euro_pfund.setTabIndex(13);
		label_euro_pfund.setTabStop(false);
		label_euro_pfund.setText("Euro nach Brit. Pfund");

		rb_franken_ziel.setLocation(new Point(16, 96));
		rb_franken_ziel.setSize(new Point(120, 24));
		rb_franken_ziel.setTabIndex(6);
		rb_franken_ziel.setText("Schw. Franken");
		rb_franken_ziel.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		label_euro_dollar.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_euro_dollar.setLocation(new Point(8, 72));
		label_euro_dollar.setSize(new Point(184, 24));
		label_euro_dollar.setTabIndex(14);
		label_euro_dollar.setTabStop(false);
		label_euro_dollar.setText("Euro nach US-Dollar");

		label_hinweis_kurse.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_hinweis_kurse.setLocation(new Point(8, 16));
		label_hinweis_kurse.setSize(new Point(384, 24));
		label_hinweis_kurse.setTabIndex(8);
		label_hinweis_kurse.setTabStop(false);
		label_hinweis_kurse.setText("Geben Sie hier bitte die aktuellen Umrechnungskurse ein.");

		b_speichern.setLocation(new Point(8, 296));
		b_speichern.setSize(new Point(168, 32));
		b_speichern.setTabIndex(6);
		b_speichern.setText("Kurse speichern");
		b_speichern.addOnClick(new EventHandler(this.b_speichern_click));

		label_lm_1.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_lm_1.setLocation(new Point(8, 16));
		label_lm_1.setSize(new Point(568, 56));
		label_lm_1.setTabIndex(0);
		label_lm_1.setTabStop(false);
		label_lm_1.setText("Windows-Version des Währungsrechners im Rahmen der Vorlesung \"Programmieren in Java\" im Wintersemester 2004&/2005.");

		label_lm_6.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		label_lm_6.setLocation(new Point(8, 376));
		label_lm_6.setSize(new Point(600, 24));
		label_lm_6.setTabIndex(1);
		label_lm_6.setTabStop(false);
		label_lm_6.setText("Michael Schmidt - Matrikelnummer 4201427 - Fachhochschule Oldenburg/Ostfriesland/Wilhelmshaven");

		label_lm_2.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, true, false, CharacterSet.DEFAULT, 0));
		label_lm_2.setLocation(new Point(8, 80));
		label_lm_2.setSize(new Point(224, 24));
		label_lm_2.setTabIndex(3);
		label_lm_2.setTabStop(false);
		label_lm_2.setText("Hinweise zum Währungsrechner");

		label_lm_3.setLocation(new Point(8, 112));
		label_lm_3.setSize(new Point(560, 56));
		label_lm_3.setTabIndex(5);
		label_lm_3.setTabStop(false);
		label_lm_3.setText("Der Kurs zur Umrechnung von Euro in DM wurde von der Europäischen Zentralbank (EZB) auf 1.95583 festgelegt. Dieser Kurs wurde deshalb bereits eingegeben und kann auch nicht geändert werden.");

		label_fehler.setBackColor(Color.CONTROLDARK);
		label_fehler.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_fehler.setForeColor(Color.WHITE);
		label_fehler.setLocation(new Point(136, 352));
		label_fehler.setSize(new Point(328, 24));
		label_fehler.setTabIndex(4);
		label_fehler.setTabStop(false);
		label_fehler.setText("");
		label_fehler.setTextAlign(HorizontalAlignment.CENTER);
		label_fehler.addOnClick(new EventHandler(this.label_fehler_click));

		label_fehler_kurse.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.HEAVY, false, false, false, CharacterSet.DEFAULT, 0));
		label_fehler_kurse.setLocation(new Point(8, 336));
		label_fehler_kurse.setSize(new Point(432, 32));
		label_fehler_kurse.setTabIndex(15);
		label_fehler_kurse.setTabStop(false);
		label_fehler_kurse.setText("");

		label_lm5.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, true, false, CharacterSet.DEFAULT, 0));
		label_lm5.setLocation(new Point(8, 344));
		label_lm5.setSize(new Point(224, 24));
		label_lm5.setTabIndex(2);
		label_lm5.setTabStop(false);
		label_lm5.setText("verantwortlich für den Inhalt:");

		rb_autoload.setLocation(new Point(16, 440));
		rb_autoload.setSize(new Point(440, 23));
		rb_autoload.setTabIndex(16);
		rb_autoload.setTabStop(true);
		rb_autoload.setText("Umrechnungskurse beim nächsten Programmstart automatisch laden");
		rb_autoload.setVisible(false);
		rb_autoload.setChecked(true);
		rb_autoload.addOnCheckedChanged(new EventHandler(this.radioButton1_checkedChanged));

		pictureBox1.setLocation(new Point(224, 128));
		pictureBox1.setSize(new Point(150, 147));
		pictureBox1.setTabIndex(6);
		pictureBox1.setTabStop(false);
		pictureBox1.setText("pictureBox1");
		pictureBox1.setImage((Bitmap)resources.getObject("pictureBox1_image"));
		pictureBox1.addOnClick(new EventHandler(this.pictureBox1_click));

		label_hinweis_kurse2.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_hinweis_kurse2.setLocation(new Point(8, 40));
		label_hinweis_kurse2.setSize(new Point(560, 24));
		label_hinweis_kurse2.setTabIndex(10);
		label_hinweis_kurse2.setTabStop(false);
		label_hinweis_kurse2.setText("Aktuelle Kurse finden Sie z.B. unter http://boerse.n24.de/n24/waehrung_uebersicht.htm");

		label2.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label2.setForeColor(Color.ACTIVECAPTIONTEXT);
		label2.setLocation(new Point(8, 16));
		label2.setSize(new Point(672, 40));
		label2.setTabIndex(7);
		label2.setTabStop(false);
		label2.setText("Bitte wählen Sie zuerst die Basiswährung und dann die Zielwährung, geben Sie den Betrag ein, den Sie umrechnen möchten und klicken auf \"Umrechnen\".");

		label_lm_4.setLocation(new Point(8, 176));
		label_lm_4.setSize(new Point(560, 56));
		label_lm_4.setTabIndex(4);
		label_lm_4.setTabStop(false);
		label_lm_4.setText("Wenn bereits Kurse eingegeben und gespeichert wurden, werden diese Kurse beim nächsten Programmstart automatisch geladen. Bitte achten Sie deshalb stets darauf, dass Sie eingegebene Kurse auch speichern!");

		rb_yen_basis.setLocation(new Point(16, 168));
		rb_yen_basis.setSize(new Point(136, 24));
		rb_yen_basis.setTabIndex(4);
		rb_yen_basis.setText("Yen");
		rb_yen_basis.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		rb_yen_ziel.setLocation(new Point(16, 168));
		rb_yen_ziel.setSize(new Point(136, 24));
		rb_yen_ziel.setTabIndex(3);
		rb_yen_ziel.setText("Yen");
		rb_yen_ziel.addOnCheckedChanged(new EventHandler(this.pictureBox1_click));

		label_euro_yen.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.BOLD, false, false, false, CharacterSet.DEFAULT, 0));
		label_euro_yen.setLocation(new Point(8, 200));
		label_euro_yen.setSize(new Point(184, 24));
		label_euro_yen.setTabIndex(9);
		label_euro_yen.setTabStop(false);
		label_euro_yen.setText("Euro nach Yen");

		edit_euro_yen.setFont(new Font("Arial", 10.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		edit_euro_yen.setForeColor(Color.BLACK);
		edit_euro_yen.setLocation(new Point(240, 200));
		edit_euro_yen.setSize(new Point(104, 23));
		edit_euro_yen.setTabIndex(4);
		edit_euro_yen.setText("");

		this.setNewControls(new Control[] {
							Register});
		Register.setNewControls(new Control[] {
								tabPageUmrechnen, 
								tabKurse, 
								tabPage3});
		tabPageUmrechnen.setNewControls(new Control[] {
										label2, 
										pictureBox1, 
										label_fehler, 
										label_ergebnis, 
										edit_betrag, 
										label_frage, 
										Groupbox_Basiswaehrung, 
										GroupBoxZielwaehrung});
		tabKurse.setNewControls(new Control[] {
								edit_euro_yen, 
								label_euro_yen, 
								rb_autoload, 
								label_hinweis_kurse2, 
								label_fehler_kurse, 
								b_speichern, 
								edit_euro_dm, 
								edit_euro_franken, 
								edit_euro_pfund, 
								edit_euro_hkd, 
								edit_euro_dollar, 
								label_euro_hkd, 
								label_euro_dm, 
								label_euro_franken, 
								label_euro_pfund, 
								label_euro_dollar, 
								label_hinweis_kurse});
		tabPage3.setNewControls(new Control[] {
								label_lm_4, 
								label_lm5, 
								label_lm_3, 
								label_lm_2, 
								label_lm_6, 
								label_lm_1});
		Groupbox_Basiswaehrung.setNewControls(new Control[] {
											  rb_yen_basis, 
											  rb_hkd_basis, 
											  rb_euro_basis, 
											  rb_pfund_basis, 
											  rb_franken_basis, 
											  rb_dm_basis, 
											  rb_dollar_basis});
		GroupBoxZielwaehrung.setNewControls(new Control[] {
											rb_yen_ziel, 
											rb_franken_ziel, 
											rb_euro_ziel, 
											rb_pfund_ziel, 
											rb_dm_ziel, 
											rb_dollar_ziel, 
											rb_hkd_ziel});
		}

	/**
	 * Der Haupteinsprungpunkt für die Anwendung. 
	 *
	 * Ein @param args-Array aus Parametern wird an die Anwendung
	 * über die Befehlszeile übergeben.
	 */	
	
	public static void main(String args[])
	{
		Application.run(new Form1());
	}
	
	// Methode Speichern
	private void Speichern()
	{
		if (speichern == true)
		{
			// Die benötigten Variable werden deklariert und initialisiert
			String kurs_leer = "";
			double kurs_dollar = 0;
			double kurs_pfund = 0;
			double kurs_franken = 0;
			double kurs_hkd = 0;
			double kurs_yen = 0;
			double kurs_dm = 1.95583;
			
			// Es wird ein Array benötigt ... und dieses Array wird hier erzeugt
			double[] KursArray = new double[6];
			
			// Hier wird geprüft, ob Kurse gültige double-Werte sind ... Schreiben in Array
			try
			{
				// Umrechnung Euro in Dollar
				
				kurs_leer = edit_euro_dollar.getText();
				kurs_dollar = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_dollar <= 0)
					{
					speichern = false;
					label_fehler_kurse.setText("Fehler beim Speichern. Kurse dürfen nicht <=0 sein!");
					}
				else
				KursArray[0] = kurs_dollar;
				speichern = true;
				
				// Umrechnung Euro in Pfund
			
				kurs_leer = edit_euro_pfund.getText();
				kurs_pfund = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_pfund <= 0)
					{
					label_fehler_kurse.setText("Fehler beim Speichern. Kurse dürfen nicht <=0 sein!");
					speichern = false;
					}
				else
				KursArray[1] = kurs_pfund;
				speichern = true;
				
				// Umrechnung Euro in Franken
			
				kurs_leer = edit_euro_franken.getText();
				kurs_franken = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_franken <= 0) 
					{
					label_fehler_kurse.setText("Fehler beim Speichern. Kurse dürfen nicht <=0 sein!");
					speichern = false;
					}
				else
				KursArray[2] = kurs_franken;
				speichern = true;
				
				// Umrechnung Euro in Hong Kong Dollar
				
				kurs_leer = edit_euro_hkd.getText();
				kurs_hkd = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_hkd <= 0)
					{
					label_fehler_kurse.setText("Fehler beim Speichern. Kurse dürfen nicht <=0 sein!");
					speichern = false;
					}
				else
				KursArray[3] = kurs_hkd;
				speichern = true;
				
				// Umrechnung Euro in Yen
			
				kurs_leer = edit_euro_yen.getText();
				kurs_yen = Double.valueOf( kurs_leer).doubleValue();
				if (kurs_yen <= 0)
					{
					label_fehler_kurse.setText("Fehler beim Speichern. Kurse dürfen nicht <=0 sein!");
					speichern = false;
					}
				else
				KursArray[4] = kurs_yen;
				speichern = true;
				
				// Umrechunng Euro in DM ... da auf jeden Fall double-Wert (Grund: readOnly)
				edit_euro_dm.getText();
				KursArray[5] = kurs_dm;
				speichern = true;
				
				try
				{
					ObjectOutputStream ou = new ObjectOutputStream (new FileOutputStream ("Kursdatei.obj"));
					ou.writeObject(KursArray);
					ou.flush ();
					ou.close ();
				}
			
				/* Wenn Kurs-Datei nicht gespeichert werden konnte, vielleicht wegen des aktiv. Schreibschutzes
				   Fehlermeldung ausgeben!
				*/
				catch (Exception E6)
				{
					label_fehler_kurse.setText("Fehler beim Speichern. Schreibschutz aktiviert?");
				}
			}
		
			// Fehlermeldung auch, wenn die eingegeben Kurse trotz Hinweis gespeichert werden sollen
			catch (Exception E7)
			{
				label_fehler_kurse.setText("Kurse wurden nicht gespeichert. Bitte ALLE Kurse korrekt eingeben. "); 
			}
		}
	}
	
	// Die Methode zum Laden des Kursobjektes
	private void Laden()
	{
		if ((rb_autoload.getChecked() == true))
		{
			double umrechnungskursArray;
			
			double[] KursArray = new double[1];
						
			try
			{
			ObjectInputStream ou = new ObjectInputStream (new FileInputStream ("Kursdatei.obj"));
			Object o = ou.readObject();
					
			KursArray = (double[]) o;
			ou.close ();
					
			// Jetzt werden die eigentlich leeren Felder der Umrechnungskurse mit den Arrays gefuellt
			edit_euro_dollar.setText("" + KursArray[0]);
			edit_euro_pfund.setText("" + KursArray[1]);
			edit_euro_franken.setText("" + KursArray[2]);
			edit_euro_hkd.setText("" + KursArray[3]);
			edit_euro_yen.setText("" + KursArray[4]);
			}
				
			catch (Exception E5)
			{
				label_fehler_kurse.setText("Kursdatei nicht vorhanden. Bitte neue Kurse eingeben.");
			}
				
		}
	}
}
```

Vielen Dank schonmal!


----------



## Dreezard (18. Dez 2004)

sry, aber das jetzt alles nachzuvollziehen (zumal es noch eine abgeleitete Klasse ist) ist für mich jetzt ein wenig zeitraubend. Ich bin auch noch anfänger  :roll:


----------



## Beni (18. Dez 2004)

Das ist ja nichtmal Java??


> /**
> * HINWEIS: Der folgende Code ist für den Visual J++-
> * Formulardesigner erforderlich.  Er kann mit dem Formulareditor verändert werden.  Ändern Sie
> * ihn nicht mit dem Codeeditor.
> */



Sry, aber vielleicht bist du im falschen Forum gelandet  :cry:

(Das Problem ist, dass du hier Klassen verwendest die ich (und wahrscheinlich auch viele andere) gar nicht kennen).


----------



## mics123 (18. Dez 2004)

Ich kann ja auch nix dafür, dass wir die ganze Sache mit dem Editor von Microsoft machen MÜSSEN, normalerweise nutze ich Eclipse ...!

Der ganze Code ... von 564 bis 1051 ist automatisch generierter Code ... denn kann man gar nicht so ohne weiteres ändern.

Es geht ja nur um die Methoden davor und dahinter ...


----------



## Roar (18. Dez 2004)

mics123 hat gesagt.:
			
		

> Ich kann ja auch nix dafür, dass wir die ganze Sache mit dem Editor von Microsoft machen MÜSSEN, normalerweise nutze ich Eclipse ...!



wer zwingt dich denn das mit j++ zu machen  :shock:  :shock:  :shock:  :shock:  :shock:


----------



## mics123 (18. Dez 2004)

Mein Prof. und meine schlechten Java-Kenntnisse zwingen mich dazu ... ich bin leider nicht in der Lage, den gleichen Währungsrechner mit einem anderen Editor zu schreiben.

Und bei J++ kann ich mir immerhin die Oberfläche zusammenklicken ...!!!


----------



## Reality (18. Dez 2004)

Bei JBuilder und Co. auch!

Liebe Grüße
Reality


----------



## L-ectron-X (18. Dez 2004)

Wenn Du unbedingt eine GUI zusammmen klicken musst, weil Deine Kenntnisse nicht ausreichen, kannst Du mal den JBuilder oder NetBeans ausprobieren. Und die arbeiten mit dem "echten" Java von Sun, nicht mit diesem modifizierten Mist von Microsoft.


----------



## mics123 (18. Dez 2004)

Und bei J++ habe ich immerhin schonmal die Oberfläche und alle Methoden ... nachher exportiere ich das alles und dann funktioniert gar nix mehr (wegen des Microsoft-Mists) ... vielleicht kann mir irgendwer helfen!

Aber danke für Eure Hilfe


----------

