Bmi rechner programmieren

Ohne die Sternchen kompilierts bei mir. Und die Sternchen sind wieder da... In Zeile 106. Mach mal in deinem Editor Strg+F und * *
 
bei mir ziegt er noch einen an

BMI_Rechner_Daniela2.java:128:1: class, interface, or enum expected
}
^
1 error
 
macht er aber nicht...hab jetzt noch eine klammer eingefügt, aber er zeigt immer noch einen fehler an
 
Nicht noch eine einfügen, die letzte rausnehmen.
Am besten du gibst den schliessenden Klammern eine eigene Zeile und arbeitest mit Einrückungen. Dann siehst du, wie weit nach oben du schon geschlossen hast.
 
...und dann hat er das angezeigt:

Starte C:\Dokumente und Einstellungen\bg82clda\Desktop\BMI_Rechner_Daniela4.java

java.lang.NoSuchMethodError: main
Exception in thread "main"
 
Das ist jetzt nicht dein ernst, oder? RESPEKT
Du musst jetzt nur noch ein bisschen an der Oberfläche und an der Quelltext-Einrückung arbeiten...
Und benutze zukünftig eine IDE wie zum Beispiel Eclipse. Mit soetwas werden deine Fehler schon während des Programmierens angezeigt. (Sonst hätte ich deine Fehler niemals so schnell gefunden...)
 
Du hast ein Applet geschrieben. Folglich musst du es mit dem AppletViewer starten:
Also nicht java.exe BMI_Rechner_Daniela
sondern appletviewer.exe BMI_Rechner_Daniela.html
in der Konsole eingeben. Dafür brauchst du aber zunächst eine passende HTML-Seite...

Zum Beispiel so:
HTML:
<html>
<head><title>BMI_Rechner_Daniela</title></head>
<body>
<applet code="BMI_Rechner_Daniela.class" width="500" height="500" alt="BMI_Rechner_Daniela">
</applet>
</body>
</html>
 
Zuletzt bearbeitet:
jaa!! er hats compiliert!! 🙂

Gratuliere, :applaus:
ein Schritt in die richtige Richtung. Aber auch bei dir fehlt der Text im Auswertungsfeld...
du machst nur eine System.out.println... damit schreibst du nur in die Konsole nicht in dein Applet.

Tipp: deinTextfeld.setText("Text");

tut was du brauchst. du musst jetzt nur noch ne Variable einführen, und diese dem Textfeld je Fall zuweisen. Am ende der auswertung(), dann noch das Textfeld füllen.
 
Zuletzt bearbeitet:
hi, hier drunter ist mein Programm. Hab alles versucht, doch mein Button funktioniert immer noch nicht! Hoffe das ihr mir helfen könnt, weitere Fehler hab ich noch nicht gefunden!!!
Danke im Voraus!!! Ihr könnt mich Mira nennen.
Java:
 import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 23.08.2011
  * @author
  */

public class apnr2 extends Applet {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JNumberField jNumberField1 = new JNumberField();
  private JNumberField jNumberField2 = new JNumberField();
  private JButton jButton1 = new JButton();
  private JLabel jLabel4 = new JLabel();
  private JLabel jLabel5 = new JLabel();
  private JLabel jLabel6 = new JLabel();
  // Ende Attribute

  public void init() {
    Panel cp = new Panel(null);
    cp.setBounds(0, 0, 303, 300);
    add(cp);
    // Anfang Komponenten

    jLabel1.setBounds(80, 33, 60, 16);                                           //Eingabe
    jLabel1.setText("Gewicht:");                                                 //Ausgabe
    jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));                  //Verarbeitung
    cp.add(jLabel1);                                                             //Verarbeitung
    jLabel2.setBounds(80, 72, 51, 16);                                           //Eingabe
    jLabel2.setText("Größe:");                                                   //Ausgabe
    jLabel2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));                  //Verarbeitung
    cp.add(jLabel2);                                                             //Verarbeitung
    jLabel3.setBounds(96, 208, 36, 16);                                          //Eingabe
    jLabel3.setText("BMI:");                                                     //Ausgabe
    jLabel3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));                  //Verarbeitung
    cp.add(jLabel3);                                                             //Verarbeitung
    jNumberField1.setBounds(136, 28, 65, 24);     // Feld für Gewicht            //Eingabe
    jNumberField1.setText("");                                                   //Ausgabe
    cp.add(jNumberField1);                                                       //Verarbeitung
    jNumberField2.setBounds(136, 72, 65, 24);      //Feld für Größe              //Eingabe
    jNumberField2.setText("");                                                   //Ausgabe
    cp.add(jNumberField2);                                                       //Verarbeitung
    jLabel4.setBounds(208, 32, 74, 16);                                          //Eingabe
    jLabel4.setText("Kilogramm");                                                //Ausgabe
    jLabel4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));                  //Verarbeitung
    cp.add(jLabel4);                                                             //Verarbeitung
    jLabel5.setBounds(208, 72, 44, 16);                                          //Eingabe
    jLabel5.setText("Meter");                                                    //Ausgabe
    jLabel5.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));                  //Verarbeitung
    cp.add(jLabel5);                                                             //Verarbeitung
    jLabel6.setBounds(136, 208, 13, 16);                                         //Eingabe
    jLabel6.setText("");                                                         //Ausgabe
    jLabel6.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));                  //Verarbeitung
    cp.add(jLabel6);                                                             //Verarbeitung
    jButton1.setBounds(96, 128, 113, 41);                                        //Eingabe
    jButton1.setText("BERECHNEN");                                               //Ausgabe
    jButton1.setMargin(new Insets(2, 2, 2, 2));                                  //Verarbeitung
    jButton1.addActionListener(new ActionListener() {                            //Verarbeitung
      public void actionPerformed(ActionEvent evt) {                             //Verarbeitung
        jButton1_ActionPerformed(evt);                                           //Verarbeitung
      }
    });
    cp.add(jButton1);                                                            //Verarbeitung
    // Ende Komponenten

  }
  // Anfang Methoden
  public void jButton1_ActionPerformed(ActionEvent evt) {                        //Verarbeitung
    // TODO hier Quelltext einfügen
    
    double gewicht=0, groesse=0, bmi=0;                                               //Eingabe
    
    gewicht=Integer.parseInt(jNumberField1.getText());                             //Eingabe
    groesse=Integer.parseInt(jNumberField2.getText());                             //Eingabe
    bmi=gewicht/groesse;                                                           //Verarbeitung
    bmi=bmi/groesse;                                                               //Verarbeitung
    jLabel6.setText(String.valueOf(bmi));                                          //Ausgabe
  }

  // Ende Methoden

}
 
"funktioniert nicht" ist keine Fehlerbeschreibung.
Was geht nicht?
Woher kommt deine Klasse JNumberfield, die importierst du nirgends.
 
Falls hier immer noch jemand Probleme hat, ich schreibe euch gerne einen voll funktionstüchtigen BMIRechner mit euren Wünschen mit Kommentaren dran und erklär euch den Code via Skype oder TS. Für 10 €.
Wer will kann sich melden.
Habe mal schnell eine kleine Test-App geschrieben:
 

Anhänge

Hallo Java Forum,

der Ein oder Andere wird sich jetzt warscheinlich denken "Ohh GOTT bitte nicht schon wieder ein Post in dem Thread" was wirklich verständlich wäre, nachdem ich jetzt die 4 Seiten angeschaut habe.
Aufgrund von Langeweile dachte ich mir heute ich könnte auch so einen BMI Rechner programmieren.

Allerdings bin ich auf dieses Problem gestoßen.

Dies ist nur ein Auszug der Fehlermeldung, da ich denke, dass dieser Teil reicht.

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "22,53"
	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
	at java.lang.Double.parseDouble(Unknown Source)
	at BMI.bmiBerechnen(BMI.java:78)
	at BMI.actionPerformed(BMI.java:66)

Die Fehlerquelle versteckt sich irgendwo hier:

Java:
public void actionPerformed(ActionEvent event){
		ausgabe.setText(String.valueOf(bmiBerechnen()));	
	}
	
	double bmiBerechnen(){
		
		NumberFormat n = NumberFormat.getInstance();
		n.setMaximumFractionDigits(2); 
		
		Double größeD = Double.parseDouble(größe.getText());
		Double gewichtD = Double.parseDouble(gewicht.getText());

		double bmi = (gewichtD / ((größeD/100) * (größeD/100)));
		bmi = Double.parseDouble(n.format(bmi));     // wenn ich dies ausklammere dann funktionierts
		return bmi;
	}

Wenn ich, wie in dem Kommentar vom Quellcode geschrieben, diese Zeile ausklammere, dann funktioniert es.
Trotzallem hätte ich es gern auf 2 Stellen gerundet. Es gibt ja die ein oder andere Methode dies zu erledigen ich habe mir diese ausgesucht. Bei der wird die Zahl in einen String verwandelt, daher wieder der Parse zu double. Ich weis aber nicht warum dann eine Fehlermeldung kommt.

Über eine Lösung würde ich mir freuen😀

Gruß GEEK!
 
"22,53" kann nicht zu einem Double geparst werden mit der Methode parseDouble, du kannst schließlich auch nicht double d = 22,53 schreiben, sondern musst den Punkt verwenden (d=22.53)!
"22.53" geht dann also 🙂
Steht aber auch alles in der Doku

Demnach musst du das Komma durch einen Punkt ersetzen 😛
 
danke eRaaaaa, hätte ich auch selbst drauf kommen können.

vorallem, weil ich als ich mir den Thread durchgelesen habe auch darauf gestoßen bin, was auch von dir geschrieben wurde. Naja doppelt hält besser :applaus:


Gruß GEEK
 
Zuletzt bearbeitet:
Auch wenn es recht spät kommt, wollte ich mich in Namen meiner Gruppe bei KiteCat für die immense Vorarbeit bedanken.

Desweiteren an alle anderen verzweifelten Schüler die diese verdammte Textausgabe brauchten:

In KiteCats Script steht vor der If-Else Funktion folgender Term:

}
public void auswertung(int bmi)

dieser verursacht, dass die Textausgabe nicht funktioniert, wenn ihr diesen entfernt und einfach eine geschweifte Klammer dafür am Ende des Programmes einfügt funktioniert es einwandfrei.

Hoffe zukünftigen Informatik Generationen geholfen zu haben
 

Neue Themen


Zurück
Oben