Java Editor BMI Rechner

Alan6

Mitglied
Hallo Zusammen,

ich versuche gerade einen einfachen BMI-Rechner mit Java-Editor (GUI) zu programmieren. Bei dem was ich programmiert habe kommt keine Fehlermeldung aber es funktioniert nicht.
Wenn ich Button (Ihr BMI ist) drücke kommt nichts.
Ich habe die unterschiedlichsten Sachen ausprobiert, doch es hat nichts gebracht.


Vielen Dank im Voraus!


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

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

public class BMI_Siar extends JFrame {
  // Anfang Attribute
  private JTextField GweichtinKg = new JTextField();
  private JTextField tfGroesseinm = new JTextField();
  private JNumberField Zahl1 = new JNumberField();
  private JNumberField Zahl2 = new JNumberField();
  private JButton IhrBMIist = new JButton();
  private JTextField ergebnis = new JTextField();
  // Ende Attribute

  public BMI_Siar() {
    // Frame-Initialisierung
    super();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 400;
    int frameHeight = 400;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setTitle("BMI_Siar");
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    GweichtinKg.setBounds(80, 40, 113, 40);
    GweichtinKg.setText("Gweicht in Kg:");
    GweichtinKg.setFont(new Font("Dialog", Font.BOLD, 14));
    GweichtinKg.setHorizontalAlignment(SwingConstants.RIGHT);
    cp.add(GweichtinKg);
    tfGroesseinm.setBounds(80, 104, 113, 40);
    tfGroesseinm.setText("Größe in m:");
    tfGroesseinm.setHorizontalAlignment(SwingConstants.RIGHT);
    tfGroesseinm.setFont(new Font("Dialog", Font.BOLD, 14));
    cp.add(tfGroesseinm);
    Zahl1.setBounds(240, 40, 57, 41);
    Zahl1.setText("");
    cp.add(Zahl1);
    Zahl2.setBounds(240, 104, 57, 41);
    Zahl2.setText("");
    cp.add(Zahl2);
    IhrBMIist.setBounds(80, 192, 217, 41);
    IhrBMIist.setText("Ihr BMI ist:");
    IhrBMIist.setMargin(new Insets(2, 2, 2, 2));
    IhrBMIist.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        IhrBMIist_ActionPerformed(evt);
      }
    
    });   
    cp.add(IhrBMIist);
    ergebnis.setBounds(80, 256, 217, 41);
    cp.add(ergebnis);
    // Ende Komponenten

    setVisible(true);
  } // end of public BMI_Siar

  // Anfang Methoden

  public static void main(String[] args) {
    new BMI_Siar();
  } // end of main

  public void IhrBMIist_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
         float Zahl1 = 0; // in kg
      float Zahl2 = 0; // in m zum quadrat
    float ergebnis = 0;
    float BMI = 0;
      ergebnis = ((Zahl1 / (Zahl2 * Zahl2)) * 10) / 10;
        
        if (BMI > 25) {
            System.out.println("ergebnis" + BMI + " (Übergewichtig).");
        {
        
        } if (BMI == 18.5 ||BMI < 25) {
            System.out.println("ergebnis" + BMI + " (Normalgewicht).");
        } else if (BMI < 20) {
          System.out.println("ergebnis" + BMI + " (Untergewichtig).");
 
   }
}

  } // end of IhrBMIist_ActionPerformed

  // Ende Methoden
} // end of class BMI_Siar
 
Zuletzt bearbeitet von einem Moderator:

Carcharoth

Bekanntes Mitglied
Fehlt dir da nicht ein "else" in den Bedingungen ?

Java:
if (BMI > 25) {
            System.out.println("ergebnis" + BMI + " (Übergewichtig).");
        } else if (BMI == 18.5 ||BMI < 25) {
            System.out.println("ergebnis" + BMI + " (Normalgewicht).");
        } else if (BMI < 20) {
            System.out.println("ergebnis" + BMI + " (Untergewichtig).");
        }
 
K

kneitzel

Gast
a) Also Code bitte immer in Code-Tags ("</> icon oberhalb des Eingabefeldes)

b) Und die if machen wenig Sinn so.
BMI < 15 umfasst auch BMI == 18.5 - die Prüfung auf == 18.5 kann also weggelassen werden.
Und das letzte else kommt nur noch bei BMI == 25 zum tragen. Eine Prüfung auf < 20 macht keinen Sinn, denn da wäre ja der Check mit < 25 schon aktiv geworden.

c) Du rechnest nur mit lokalen variablen, die 0 sind:

Java:
public void IhrBMIist_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    float Zahl1 = 0; // in kg
    float Zahl2 = 0; // in m zum quadrat
    float ergebnis = 0;
    float BMI = 0;
    ergebnis = ((Zahl1 / (Zahl2 * Zahl2)) * 10) / 10;

Und damit dividierst Du durch 0, d.h. zu den if dürftest Du nicht erst kommen. Du willst ja in den Variablen den Inhalt der Controls haben. Also musst Du die Controls auslesen... Die Controls heißen teilweise so, wie die lokalen Variablen ... das ist auch recht unschön...

d) Benennung von Variablen: Variablen bitte immer mit einem kleinen Buchstaben starten. Also zahl1, zahl2, bmi, ... Und dann sollen die Namen etwas aussagen - also nicht einfach zahl1 / zahl2 ... also zahl1 könnte gewichtTextfeld sein (Instanzvariable) und gewicht (lokale Variable) ...
 

Alan6

Mitglied
Vielen lieben Dank!

Carcharoth+kneitzel

Wenn ich bei "zahl1" bzw. zahl2 "float zahl1=0;" Null weglasse, dann sagt er "Die Variable zahl1 wurde möglicherweise nicht initialisiert"
Ich habe den Rechner grafisch (GUI) programmiert. Mir fehlen 3 Sachen: 1) initialisieren 2) Ausgabe nicht auf Konsole, sondern auf Grafik 3) Er rechnet nicht.
 

Carcharoth

Bekanntes Mitglied
Du musst, wie kneitzel geschrieben hat, verschiedene Namen vergeben für einerseits die Elemente deiner GUI (z.B. einem Textfeld wo das Gewicht vom User eingegeben wird) und für die Zahl die zur Berechnung verwendet wird.

Danach kannst du in deiner Methode IhrBMIist_ActionPerformed das Gewicht aus dem Textfeld in die Berechnungsvariable auslesen und erst dann die Berechnung durchführen. So wird die Variable auch gleich initialisiert.
 

Alan6

Mitglied
Hi Blender3D,

vielen Dank für deinen Beitrag.

Scheinbar gibt es mehrere Möglichkeiten wie man so einen kleinen und einfachen BMI-Rechner mit java programmiert. Für Anfänger wie ich ist es eine gute Aufgabe.

Ich habe mich für folgende Version entschieden, das einzige, was nicht funktioniert ist die BMI Formel rechnen lassen.

zwischen = zahl1 / (zahl2 * zahl2) * 10/10 akzeptiert er nicht. Mal sagt er es fehlt ein Komma, mal meckert er wegen dem Stern (*) als Multiplikation usw.

Also habe „Math.random“ versucht, siehe es funktioniert aber die Ergebnisse sind falsch. Auch verständlich denn „Math.random“ ist dafür nicht geeignet. Was ich möchte ist genau ein Operator wie „Math.random“ aber nicht „Zufall“ rechnet.

Vielen Dank im Voraus und schönes Wochenende!

[CODE lang="java" title="BMI-Rechner"] double zwischen = 0;
zwischen = Math.random ()*"zahl1 / (zahl2 * zahl2) * 10/10".length();
double bmi = zwischen;
ergebnis.setText (Double.toString (zwischen));

if (zwischen > 25) {
System.out.println("" +bmi+ "(Uebergewichtig)");
} else if (zwischen ==20) {
System.out.println("" +bmi+ "(Normalgewicht)");
} else if (zwischen < 20) {
System.out.println("" +bmi+ "(Untergewichtig)");
}
[/CODE]
 
K

kneitzel

Gast
Nur einmal zu der Erläuterung ein kleiner Vergleich:
Du hast da ja Cotrols - das vergleichen wir mal mit Zetteln. Du kannst doch nicht Rechnen: 1. Zettel * 2. Zettel - 3. Zettel oder so.

Wenn auf den Zetteln Zahlen stehen, dann kannst Du aber mit den Zahlen Rechnen:
Zahl vom ersten Zettel mal Zahl vom Zeiten Zettel - Zahl vom dritten Zettel.

Das ist bei den Controls genau so:
- Du musst von jedem Control erst einmal ermitteln, was da für eine Zahl enthalten ist.
- Wenn Du die Zahl dann hast, dann kannst Du mit der Zahl rechnen.

Bei einem JTextField ist aber Text eingegeben. Also musst Du den Text noch in eine Zahl umwandeln.
An den Text kommst Du mittels getText() und umwandeln in eine Zahl kannst Du mit Double.parseDouble(text).
Bei JNumberFiled musst Du schauen, was das für Methoden bereit stellt. Das ist keine Klasse des Java Frameworks. Das kann ähnlich sein oder evtl. gibt es da bereits eine Methode, um direkt die Zahl zu bekommen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
J "travelling salesman problem" mit Java Editor Java Basics - Anfänger-Themen 17
NightmareVirus Java-Editor (G. Röhner): Fehlende Dateinamen Java Basics - Anfänger-Themen 1
P Kann ich Java - Programme auch ohne Editor öffnen? Java Basics - Anfänger-Themen 70
N JDK installieren Probleme mit dem Java Editor Java Basics - Anfänger-Themen 3
H Interface Problem mit Java Editor Java Basics - Anfänger-Themen 15
K Java-Editor: "Starten" bringt Error Java Basics - Anfänger-Themen 15
P OOP Java-Editor OOP Fehlerlösung Java Basics - Anfänger-Themen 6
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Erste Schritte Problem mit dem Java-Editor Eclipse [Frage] Java Basics - Anfänger-Themen 13
T Problem mit java-editor + Scanner Java Basics - Anfänger-Themen 9
C Java Gui Editor Java Basics - Anfänger-Themen 10
H Java-Editor Wahl Java Basics - Anfänger-Themen 15
K Java editor kompiliert aber startet nicht Java Basics - Anfänger-Themen 5
S Java-Editor für Mac? Java Basics - Anfänger-Themen 8
J Java Editor Appletons - Errors Java Basics - Anfänger-Themen 13
F Erster Tag mit Java Editor Java Basics - Anfänger-Themen 32
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
G Kann mit Java Editor keine Programme schreiben Java Basics - Anfänger-Themen 5
H Java Editor richtig konfogurieren Java Basics - Anfänger-Themen 8
J Java - Editor Java Basics - Anfänger-Themen 8
G *.java Datei mit Editor starten und testen Java Basics - Anfänger-Themen 6
H Java Editor Java Basics - Anfänger-Themen 7
C Java Editor Java Basics - Anfänger-Themen 7
C Java-Editor einrichten Java Basics - Anfänger-Themen 6
F Wie benutze ich mein java programm ohne editor? Java Basics - Anfänger-Themen 2
J Wie installiere ich die api index.html in meinen java editor Java Basics - Anfänger-Themen 4
S Dartscheibe mit Java editor von gerhard röhner Java Basics - Anfänger-Themen 2
E Ohne Editor Java- Programm starten Java Basics - Anfänger-Themen 4
M HTML Editor mit Java? Java Basics - Anfänger-Themen 6
G Rich Text Editor - mit Java möglich? Java Basics - Anfänger-Themen 2
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben