GUI mit if-Verzweigung kombiniert - Illegal start of expression (Dringend)

  • Themenstarter Themenstarter Rohrverleger
  • Beginndatum Beginndatum
R

Rohrverleger

Gast
Schönen Abend

Ich schreib morgen eine Klausur Wirtschaftsgymnasium Stufe 13/1 im Fach Datenverarbeitung. Thema: GUI in Java
Die Gestaltung der Oberfläche, so wie die Lösung von einfachen Aufgaben bereitet mir keine Probleme. Doch mein Lehrer, den ich erst seit diesem Kurs habe, erwartet von uns, damit wir auch if-Verzweigungen anwenden können und da das schon eine längere Weile her ist, sind meine Fähigkeiten darin mittlerweile etwas eingerostet.
Zur Übung möchte ich einen simplen Zins-Rechner gestalten, bei dem man den aktuellen Kontostand eingibt und die Zinsen sowie den Kontostand am Ende des Jahres ausgegeben bekommt. Ist der Kontostand <=1000, so rechnet man mit nem Zinssatz von 2%, ist er <=1500, rechnet man mit einem Zinssatz von 5% und mit allem darüber mit nem Satz von 10%. Beim Klick auf den "Loeschen"-Button sollen alle Felderinhalte gelöscht werden.

Mein Quelltext schaut so aus:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
  *
  * description
  *
  * @version 1.0 from 12.12.2010
  * @author Rohrverleger
  */

public class Zinssatz extends JApplet {
  // Anfang Attribute
  private JLabel lblZinssatzrechner = new JLabel();
  private JLabel lblKontostand = new JLabel();
  private JLabel lblZinsen = new JLabel();
  private JLabel lblKontostandE = new JLabel();
  private JTextField tfKontostand = new JTextField();
  private JTextField tfZinsen = new JTextField();
  private JTextField tfKontostandE = new JTextField();
  private JButton btnLoeschen = new JButton();
  private JButton btnRechnen = new JButton();
  // Ende Attribute

  public void init() {
    Container cp = getContentPane();
    cp.setLayout(null);
    cp.setBounds(0, 0, 371, 524);
    // Anfang Komponenten
    lblZinssatzrechner.setBounds(8, 16, 150, 32);
    lblZinssatzrechner.setText("Zinssatzrechner");
    lblZinssatzrechner.setFont(new Font("MS Sans Serif", Font.PLAIN, 18));
    cp.add(lblZinssatzrechner);
    lblKontostand.setBounds(8, 96, 90, 20);
    lblKontostand.setText("Kontostand");
    lblKontostand.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    cp.add(lblKontostand);
    lblZinsen.setBounds(8, 272, 48, 20);
    lblZinsen.setText("Zinsen");
    lblZinsen.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    cp.add(lblZinsen);
    lblKontostandE.setBounds(8, 344, 124, 20);
    lblKontostandE.setText("Kontostand Ende");
    lblKontostandE.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    cp.add(lblKontostandE);
    tfKontostand.setBounds(200, 96, 153, 24);
    tfKontostand.setText("");
    cp.add(tfKontostand);
    tfZinsen.setBounds(200, 272, 153, 24);
    tfZinsen.setText("");
    cp.add(tfZinsen);
    tfKontostandE.setBounds(200, 344, 153, 24);
    tfKontostandE.setText("");
    cp.add(tfKontostandE);
    btnLoeschen.setBounds(32, 416, 129, 33);
    btnLoeschen.setText("Löschen");
    btnLoeschen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnLoeschen_ActionPerformed(evt);
      }
    });
    cp.add(btnLoeschen);
    btnRechnen.setBounds(208, 416, 121, 33);
    btnRechnen.setText("Rechnen");
    btnRechnen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnRechnen_ActionPerformed(evt);
      }
    });
    cp.add(btnRechnen);
    // Ende Komponenten
  }

  // Anfang Methoden
  public void btnLoeschen_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    tfKontostand.setText("");
    tfZinsen.setText("");
    tfKontostandE.setText("");
  }

  public void btnRechnen_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    int Kontostand = Integer.parseInt(tfKontostand.getText());
    public double berechneZinsen() {
      double Zinsen;
      //Verzweigung
      if (Kontostand <= 1000)
      {
        Zinsen=Kontostand*0,02;
      }
      else if (Kontostand <= 1500)
      {
        Zinsen=Kontostand*0,05;
      }
      else
      {
        Zinsen=Kontostand*0,10;
      }
    }

    double KontostandE=Kontostand+Zinsen;
    tfZinsen.setText(" " +Zinsen);
    tfKontostandE.setText(" " +KontostandE);
  }

  // Ende Methoden
}

Nun gibt er mir aber folgende Fehler aus:

Compiliere C:\Dokumente und Einstellungen\<Name> mit Java-Compiler
Zinssatz.java:96:5: illegal start of expression
public double berechneZinsen() {
^
Zinssatz.java:96:33: ';' expected
public double berechneZinsen() {
^
Zinssatz.java:101:28: ';' expected
Zinsen=Kontostand*0,02;
^
Zinssatz.java:105:28: ';' expected
Zinsen=Kontostand*0,05;
^
Zinssatz.java:109:28: ';' expected
Zinsen=Kontostand*0,10;
^
5 errors



Bin momentan etwas verzweifelt, ich kenne mich nicht besonders gut aus und kann den Fehler nicht finden. Für die Klausur morgen sollte ich es aber können. Ich hoffe doch sehr, dass ihr mir mit dem wohl simplen Fehler helfen könnt und möglichst noch vor 8:15 am Montag Morgen ;-)
Schon einmal Danke!

MfG

Mario
 
Dein Fehler ist, dass du nicht einfach so eine Methode berechneZinsen() innerhalb einer anderen Methode schreiben darfst. Lass die berechneZinsen-Methode einfach weg.
 
Okay, sowas in der Art dachte ich mir schon. Doch was muss ich nun genau ändern bzw. weglassen? Einfach nur diese Zeile?

Java:
public double berechneZinsen() {

Nur das allein klappt nicht, folgende Fehler treten auf:


Compiliere C:\Dokumente und Einstellungen\<Name> mit Java-Compiler
Zinssatz.java:90:28: ';' expected
Zinsen=Kontostand*0,02;
^
Zinssatz.java:94:28: ';' expected
Zinsen=Kontostand*0,05;
^
Zinssatz.java:98:28: ';' expected
Zinsen=Kontostand*0,10;
^
Zinssatz.java:103:21: <identifier> expected
tfZinsen.setText(" " +Zinsen);
^
Zinssatz.java:103:22: illegal start of type
tfZinsen.setText(" " +Zinsen);
^
Zinssatz.java:103:25: ')' expected
tfZinsen.setText(" " +Zinsen);
^
Zinssatz.java:103:27: ';' expected
tfZinsen.setText(" " +Zinsen);
^
Zinssatz.java:103:33: illegal start of type
tfZinsen.setText(" " +Zinsen);
^
Zinssatz.java:103:34: <identifier> expected
tfZinsen.setText(" " +Zinsen);
^
Zinssatz.java:103:35: ';' expected
tfZinsen.setText(" " +Zinsen);
^
Zinssatz.java:104:18: illegal start of type
tfKontostandE.setText(" " +KontostandE);
^
Zinssatz.java:104:27: illegal start of type
tfKontostandE.setText(" " +KontostandE);
^
Zinssatz.java:104:30: ')' expected
tfKontostandE.setText(" " +KontostandE);
^
Zinssatz.java:104:32: ';' expected
tfKontostandE.setText(" " +KontostandE);
^
Zinssatz.java:104:43: illegal start of type
tfKontostandE.setText(" " +KontostandE);
^
Zinssatz.java:104:44: <identifier> expected
tfKontostandE.setText(" " +KontostandE);
^
Zinssatz.java:104:45: ';' expected
tfKontostandE.setText(" " +KontostandE);
^
17 errors



Ich danke wieder für die schnelle Hilfe bisher.
 
Okay, habe vergessen die zweite Klammer zu löschen, mein Quelltext schaut nun so aus:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
  *
  * description
  *
  * @version 1.0 from 12.12.2010
  * @author Rohrverleger
  */

public class Zinssatz extends JApplet {
  // Anfang Attribute
  private JLabel lblZinssatzrechner = new JLabel();
  private JLabel lblKontostand = new JLabel();
  private JLabel lblZinsen = new JLabel();
  private JLabel lblKontostandE = new JLabel();
  private JTextField tfKontostand = new JTextField();
  private JTextField tfZinsen = new JTextField();
  private JTextField tfKontostandE = new JTextField();
  private JButton btnLoeschen = new JButton();
  private JButton btnRechnen = new JButton();
  // Ende Attribute

  public void init() {
    Container cp = getContentPane();
    cp.setLayout(null);
    cp.setBounds(0, 0, 371, 524);
    // Anfang Komponenten
    lblZinssatzrechner.setBounds(8, 16, 150, 32);
    lblZinssatzrechner.setText("Zinssatzrechner");
    lblZinssatzrechner.setFont(new Font("MS Sans Serif", Font.PLAIN, 18));
    cp.add(lblZinssatzrechner);
    lblKontostand.setBounds(8, 96, 90, 20);
    lblKontostand.setText("Kontostand");
    lblKontostand.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    cp.add(lblKontostand);
    lblZinsen.setBounds(8, 272, 48, 20);
    lblZinsen.setText("Zinsen");
    lblZinsen.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    cp.add(lblZinsen);
    lblKontostandE.setBounds(8, 344, 124, 20);
    lblKontostandE.setText("Kontostand Ende");
    lblKontostandE.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    cp.add(lblKontostandE);
    tfKontostand.setBounds(200, 96, 153, 24);
    tfKontostand.setText("");
    cp.add(tfKontostand);
    tfZinsen.setBounds(200, 272, 153, 24);
    tfZinsen.setText("");
    cp.add(tfZinsen);
    tfKontostandE.setBounds(200, 344, 153, 24);
    tfKontostandE.setText("");
    cp.add(tfKontostandE);
    btnLoeschen.setBounds(32, 416, 129, 33);
    btnLoeschen.setText("Löschen");
    btnLoeschen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnLoeschen_ActionPerformed(evt);
      }
    });
    cp.add(btnLoeschen);
    btnRechnen.setBounds(208, 416, 121, 33);
    btnRechnen.setText("Rechnen");
    btnRechnen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnRechnen_ActionPerformed(evt);
      }
    });
    cp.add(btnRechnen);
    // Ende Komponenten
  }

  // Anfang Methoden
  public void btnLoeschen_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    tfKontostand.setText("");
    tfZinsen.setText("");
    tfKontostandE.setText("");
  }

  public void btnRechnen_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    int Kontostand = Integer.parseInt(tfKontostand.getText());
      double Zinsen;
      //Verzweigung
      if (Kontostand <= 1000)
      {
        Zinsen=Kontostand*0,02;
      }
      else if (Kontostand <= 1500)
      {
        Zinsen=Kontostand*0,05;
      }
      else
      {
        Zinsen=Kontostand*0,10;
      }

    double KontostandE=Kontostand+Zinsen;
    tfZinsen.setText(" " +Zinsen);
    tfKontostandE.setText(" " +KontostandE);
  }

  // Ende Methoden
}

Aber dennoch zeigt er mir immer noch 3 Fehler an und ich komm einfach nicht auf die Lösung.

Zinssatz.java:90:28: ';' expected
Zinsen=Kontostand*0,02;
^
Zinssatz.java:94:28: ';' expected
Zinsen=Kontostand*0,05;
^
Zinssatz.java:98:28: ';' expected
Zinsen=Kontostand*0,10;
^
3 errors
 
du musst die zahlen noch mit . statt dem , als Komma schreiben... dann solte das kompilieren... im Detail hab ich mir den Code nicht angesehen...
 
Ähm, aber du hast Java verstanden?
Okay, sowas in der Art dachte ich mir schon. Doch was muss ich nun genau ändern bzw. weglassen? Einfach nur diese Zeile?

Java Code: Quelltext in neuem Fenster öffnen

1



public double berechneZinsen() {


Nur das allein klappt nicht, folgende Fehler treten auf:
Na, überleg doch mal. Wenn du Java kannst, dann solltest du auch wissen, was du weglassen musst, um die Methode da rauszunehmen. Auch wundert micht: dass du zwar was probierst, das klappt nicht, also sollen wirs machen? Du bekommst doch n haufen Fehlermeldungen vom Compiler.

In dem Codeschnipsel oben (in dem Die Zeilenangaben vom Forum mit denen deiner Compiler-Fehlermeldung nicht wirklich übereinstimmen) sind es die Zeilen 86 und 101, die du löschen musst.

EDIT:
Ah, ok. Sorry, du hast es selbst gemerkt 😉
 
Ach Gottchen, auf den dämlichsten Fehler bin ich nicht gekommen.
Ich danke dir.
Das ist echt ein tolles Forum mit klasse Support.
Vielen Dank euch allen.
 

Zurück
Oben