# Eingaben aus GUI auslesen



## Obit (16. Mai 2009)

Hallo zusammen !

Ich bin per Google auf dieses Forum gestoßen, als ich zu meinem Problem im iNet recherchiert habe.....

Ich habe im Rahmen einer Übung in der Uni ein Java-Programm (für die Profis wird das vermutlich nur etwas Code-Geschnippsel sein  ) und will das Ding nun weiter ausbauen. "Gebastelt" habe ich einen Abschreibungsrechner. Für die Konsole funktioniert das ganze Ding auch so wie es soll.

Nun habe ich zu Fuß eine grafische Oberflache gepastelt, sozusagen ein kleines Java-Applet. Die Beschriftungen und Eingabefelder sowie den OK-Button (zur Auslösung der Berechnung per ActionListener) habe ich alles gebastelt.

Nun bin ich an der Stelle, wo ich nicht mehr weiterkomme. Ich habe eine Datei mit dem "alten" Quellcode der nur über die Console arbeitet und ein "neues" File das das Applet beinhaltet.

Am liebsten wäre mir nun, wenn ich die alte Klasse einfach importieren und auf die Variablen dort zugreifen kann und dann alles ausgerechnet wird.
Der import Befehl am Quelltext-Anfang ist jetzt nicht so das Problem. Mehr wie es dann weiter geht. Da stehe ich gerade voll auf dem Schlauch.....

Kann mir dazu wer weiterhelfen?
Irgendwie komm' ich da gerade absolut nicht weiter ???:L ;(


----------



## sol1x (16. Mai 2009)

post mal vll. beide klasse.
weil ich versteh nicht wieso du da was importen willst? ...


----------



## diggaa1984 (16. Mai 2009)

wenn du es ohne probleme von der konsole abkapseln kannst, könntest du deine Bearbeitungslogik in ein Jar-File exportieren, und hättest deine eigene kleine Library, die du dann auch importieren kannst. Musst deinem neuen Programm nur noch sagen, dass diese Library bei der Suche nach Klassen verwendet werden soll (CLASSPATH).

Benutzt du eine IDE zum Programmieren (wie Eclipse oder Netbeans), die können dir solche CLASSPATH-Geschichten ohne größeren Aufwand einstellen.


----------



## Obit (16. Mai 2009)

als Editor nutze ich Netbeans...
Wobei ich die grafische Oberfläche hier ohne Zusatztool sondern per Hand eingeben habe....


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

   public class LineareAbschreibungApp extends Applet implements ActionListener{

	// Benutzeroberflaeche wird definiert (Texteingabefelder, Button, Label)
	TextField laufzeit = new TextField(10);
    TextField eingabeMonat = new TextField(10);
	TextField bruttobetrag = new TextField(10);
	Button okButton = new Button("Berechnung");
	Label abschrDauer = new Label("Abschreibung in Jahren:");
    Label anschaffMonat = new Label ("Anschaffungsmonat (als Zahl):");
	Label betragtext = new Label ("Betrag in  Euro:");
	Label abschrAnschaffungsjahr = new Label ("Abschreibung Anschaffungsjahr:");
	Label abschrAnschaffungsjahrAnteil = new Label ("                                         ");    // Platzhalter
	Label abschrJahrText = new Label ("Abschreibung pro Jahr:");
	Label anschaffungsbetrag = new Label("                                         ");    // Platzhalter

	public void init(){

	    // Layout und Komponenten der Benutzeroberflaeche werden in das Applet-Fenster eingefuegt
	    setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
	    add(abschrDauer);                   // Mehrwertsteuersatz in %
	    add(laufzeit);                      // in Textfeld erfolgt Eingabe des Mehrwertsteuersatzes
        add(anschaffMonat);                 // Anschaffungsmonat Feldbeschriftung
        add(eingabeMonat);                  // Anschaffungsmonat Textfeld
	    add(betragtext);                    // Betrag in Eur:
	    add(bruttobetrag);                  // in Textfeld erfolgt Eingabe des Bruttobetrages
	    add(okButton);                      // Button zur Eingabebestaetigung
	    add(abschrJahrText);                // Mehrwersteueranteil in Eur:
	    add(anschaffungsbetrag);            // reserviert Platz fuer Mehrwertsteuerbetrag
	    add(abschrAnschaffungsjahr);        // anteilige Abschreibung im Anschaffungsjahr
	    add(abschrAnschaffungsjahrAnteil);  // reserviert Platz fuer anteilige Abschreibung
	    okButton.addActionListener(this);   // wird der Button "Berechnung" gedrueckt, dann wird die Methode
	                                        // actionPerformed(ActionEvent e)aufgerufen und ausgefuehrt
	}

	public void actionPerformed(ActionEvent e){
         // hier müssen die Werte für die Berechnungsformeln eingelesen werde / glaube ich
	}

	private float stringToFloat(String zahl){
           /*Die Eingabe in Textfelder erfolgt zunaechst als String. Doch da man mit einem String nicht rechnen kann,
            muss die entsprechende Variable in einen float-Typ "gecastet" d.h. umgewandelt werden.*/
	    return Float.valueOf(zahl).floatValue();

	}
}
```


----------



## Obit (16. Mai 2009)

den Code der zweiten Datei poste ich später.... hab die auf dem Lappy und bin gerade auf der Arbeit und hatte nur meinen USB-Stick zur Hand.....


----------



## Obit (16. Mai 2009)

die eigentlich erste Datei mit der Berechnung (diese will ich in das Applet einbinden und dort dann die Ergebnisse ausgeben).....
Also die Ausgaben für die Konsole habe ich hier mal rausgenommen, weil ich die im Applet glaube ich sowieso nicht brauche.... die Importierungen brauche ich evtl. auch nicht weiter, da diese nur mit dem Einlesen und der Ausgabe in der Konsole zu tun haben.

Hier wird dann also nur hin und her gerechnet 


```
import prog1.bib.Konsole;
import prog1.bib.Tools;

public class LineareAbschreibung{

// Abschreibungszeitraum

// public static final int laufzeit = 3;

    public static void main(String[] args) {

      //Variablendeklaration
      float anschaffung;
      float restwert;
      float abschreibung;
      float laufzeit;
      int 	anschaffungsmonat;
      float restjahr;
	  float anteilanschaffungsjahr;
	  float restwertZwei;
	  float abschreibungJahr;

      //Einlesen des Anschaffungsmonats
      System.out.println("Bitte geben Sie den Anschaffungsmonat als Zahl ein.");
      System.out.println("(1=Januar, 2=Februar,...,12=Dezember.)");
      anschaffungsmonat = Konsole.getInputInt("Anschaffungsmonat: ");

	  // Berechnung des Restjahres
	  restjahr = 13 - anschaffungsmonat;

      //Einlesen des Abschreibungszeitraums
      System.out.println(" ");
      laufzeit = Konsole.getInputFloat("Abschreibungszeitraum (in Jahren): ");

      // Einlesen des eingegebenen Bruttobetrags
      System.out.println(" ");
      anschaffung = Konsole.getInputFloat("Anschaffungswert (in Euro) ein: ");

	  // Berechnung des anteiligen Betrag für das Anschaffungsjahr
	  anteilanschaffungsjahr = ((anschaffung / laufzeit) / 12) * (restjahr);

      // Abschreibung pro Jahr
      abschreibung = (int)laufzeit - 1;

	  // Restwert nach dem ersten Jahr
      restwert = (float)(anschaffung-anteilanschaffungsjahr);

      // ABSCHREIBUNG nach dem ersten Jahr
	  abschreibungJahr = (float)(anschaffung / laufzeit);


      // Restwert nach dem ZWEITEN Jahr
	  restwertZwei = (float)(restwert - abschreibungJahr);

    }
}
```

Also einiges ist schon geschafft. Nun quäle ich mich um die Ausgabe der berechneten Werte, sowie mit der Integration der Datei mit den ganzen Rechnungen....
 :rtfm:


----------



## Obit (17. Mai 2009)

keiner 'nen Tip für mich? ^^


----------



## Obit (20. Mai 2009)

ich hab mich heute endlich wieder eigehender damit beschäftigt... Montag / Dienstag ging nichts bei mir, da ich in der Uni viel zu tun hatte.....

Kann ich denn die eingaben nicht irgendwie einer Variablen oder sowas zuweisen um die weiter für Berechnungen nutzen zu können?
Ich stehe hier leider immernoch auf dem Schlauch.


----------



## Leroy42 (20. Mai 2009)

Obit hat gesagt.:


> Also einiges ist schon geschafft. Nun quäle ich mich um die Ausgabe der berechneten Werte, sowie mit der Integration der Datei mit den ganzen Rechnungen....
> :rtfm:



Ausgabe welcher berechneten Werte?

Was verstehst du unter _Integration der Datei mit den ganzen Rechnungen_?


----------



## Obit (20. Mai 2009)

Also die Eingaben aus dem Applet sollen bestimmten Variablen in der Class mit den ganzen Rechnungen zugewiesen werden.

Die Egebnisse aus den Rechnungen sollen dann wieder an das Applet gehen und dort in bestimmten Feldern dargestellt werden.

Von mir aus, packe ich die Klasse auch direkt zu dem Applet, wenn das "einfach so" irgendwie geht....


----------



## Tomate_Salat (21. Mai 2009)

```
public class LineareAbschreibung{
      private float anschaffung;
      private float restwert;
      private float abschreibung;
      private float laufzeit;
      private int   anschaffungsmonat;
      private float restjahr;
      private float anteilanschaffungsjahr;
      private float restwertZwei;
      private float abschreibungJahr;

    public LineareAbschreibung(int monat, float laufzeit, float anschaffung) {
        // Speichern des Monats
        this.anschaffungsmonat = monat;
        // Berechnung des Restjahres
        this.restjahr = 13 - anschaffungsmonat;
        // laufzeit speichern
        this.laufzeit = laufzeit;
        // anschaffung speichern
        this.anschaffung = anschaffung;
        // Berechnung des anteiligen Betrag für das Anschaffungsjahr
        this.anteilanschaffungsjahr = ((anschaffung / laufzeit) / 12) * (restjahr);
        // Abschreibung pro Jahr
        this.abschreibung = (int)laufzeit - 1;
        // Restwert nach dem ersten Jahr
        this.restwert = (float)(anschaffung-anteilanschaffungsjahr);
        // ABSCHREIBUNG nach dem ersten Jahr
        this.abschreibungJahr = (float)(anschaffung / laufzeit);
        // Restwert nach dem ZWEITEN Jahr
        this.restwertZwei = (float)(restwert - abschreibungJahr);
    }

    public float getAbschreibung() {
        return abschreibung;
    }

    public float getAbschreibungJahr() {
        return abschreibungJahr;
    }

    public float getAnschaffung() {
        return anschaffung;
    }

    public int getAnschaffungsmonat() {
        return anschaffungsmonat;
    }

    public float getAnteilanschaffungsjahr() {
        return anteilanschaffungsjahr;
    }

    public float getLaufzeit() {
        return laufzeit;
    }

    public float getRestjahr() {
        return restjahr;
    }

    public float getRestwert() {
        return restwert;
    }

    public float getRestwertZwei() {
        return restwertZwei;
    }
}
```

so damit kannst du jz Arbeiten. Habe mal stumpf für alles einen getter gestzt, was du nicht brauchst kannst du ja löschen. Die Daten lieste einfach aus dem Applet aus und setzt sie in den Konstruktor der Klasse

MFG

Tomate_Salat


----------

