• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

Java Editor BMI Rechner

Alan6

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:
C

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).");
        }
 
kneitzel

kneitzel

Top Contributor
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

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.
 
C

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

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!

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)");
     }
 
kneitzel

kneitzel

Top Contributor
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
mr.kottig Großeltern herausfinden Java - Map? Java Basics - Anfänger-Themen 16
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
D Java Übungsaufgaben Java Basics - Anfänger-Themen 6
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Java fx Java Basics - Anfänger-Themen 3
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
M Java Anfang Java Basics - Anfänger-Themen 13
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 1
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 0
I Java auf der Konsole Java Basics - Anfänger-Themen 5
T Die neuste Java jee Java Basics - Anfänger-Themen 12
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
G Java Hilfe Java Basics - Anfänger-Themen 3
johnboyne Java Zeichen Trennen Java Basics - Anfänger-Themen 1
I Java Quicksort PAP Java Basics - Anfänger-Themen 2
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
A Schleifen in Java Java Basics - Anfänger-Themen 4
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
P myClass?.method() in Java Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
Marc111111111 Selection Sort in Java?? Java Basics - Anfänger-Themen 6
NicoDeluxe Java RAM Management Java Basics - Anfänger-Themen 26
N Groß- und Kleinschreibung bei Java: void Methode Java Basics - Anfänger-Themen 1
T SelectionSort Java Java Basics - Anfänger-Themen 1
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
T Java Fx Java Basics - Anfänger-Themen 4
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
MPFeuer JAVA Expert-PDF Java Basics - Anfänger-Themen 1
M Java-Applet zur Mittelwertberechnung Java Basics - Anfänger-Themen 3
Abraham42 Berechnung der Kühlung Java Java Basics - Anfänger-Themen 12
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 17
Abraham42 Sparguthaben JAVA Java Basics - Anfänger-Themen 4
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
H Binominalkoeffizient tail-rekursiv in java darstellen Java Basics - Anfänger-Themen 0
H Audio in Java Java Basics - Anfänger-Themen 3
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
TimoN11 Java - Eine oder mehrere Eingaben möglich machen Java Basics - Anfänger-Themen 6
M Rekursive Java-Methode Java Basics - Anfänger-Themen 13
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
bafou Dreieckszahlen in java Java Basics - Anfänger-Themen 3
P Best Practice Druck aus Java Anwendung in MacOs Java Basics - Anfänger-Themen 0
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
B java.time Duration mit Kommazahl? Java Basics - Anfänger-Themen 4
Devin Wo kann man einen Java Lehrplan finden? Java Basics - Anfänger-Themen 5
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
O Java Weinachtsbaum in einem Bilderramen Java Basics - Anfänger-Themen 5
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 1
Gaudimagspam BMI in Java implementieren Java Basics - Anfänger-Themen 38
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
S Sprung mit Java (GameGrid) Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Anzeige

Neue Themen


Oben