Hilfe bei GUI für Pizza-Service

kreez

Mitglied
Hallo Liebes Java Forum,
bin neu hier und habe eine Frage:
Ich habe in der Schule Java und habe als Thema im Moment Verzweigungen.

Ich versuche ein Programm für einen Pizza-Service zu erstellen indem man in verschiedenen Preiskategorien Belag für die Pizza dazu nehmen kann. Ich schreibe die Aufgabenstellung einfach mal mit rein:
4IHF09I.png

Demnach habe ich ein GUI erstellt, welches so aussieht:
cJhjL3K.png

Die Variablen habe ich schon geschrieben auf dem Button:
Java:
    double pizza1 = 4.00; // Mini
    double krand1 = 0.50;
    double pizza2 = 4.50; //Maxi
    double krand2 = 0.75;
    double pizza3 = 6.00; //Bauchschmerzen
    double krand3 = 1.00;
    double kat1 = 0.50; //Kategorie 1 - Mini
    double kat12 = 0.70;  //Kategorie 1 - Maxi
    double kat13 = 1.00; //Kategorie 1 - Bauchschmerzen
    double kat2 = 1.00;  //Kategorie 2 - Mini
    double kat22 = 1.30; //Kategorie 2 - Maxi
    double kat23 = 1.50; //Kategorie 2 - Bauchschmerzen
    double kat3 = 1.50;   //Kategorie 3 - Mini
    double kat32 = 1.60;  //Kategorie 3 - Maxi
    double kat33 = 1.75; //Kategorie 3 - Bauchschmerzen

Die Radiobuttons habe ich, da man ja nur eine bestellen(von der Größe her), in eine ButtonGroup geschrieben.

Was ich gerne wissen würde, ob ich das alles in If-Else-Verzweigungen schreiben kann oder ich irgendwie die Checkboxen ebenfalls in eine Gruppe machen kann und auslesen kann wie viele Checkboxen in der Gruppe angeklickt wurden und damit den Preis in der Preiskategorie dann einfach rechnen kann.

Zum Beispiel:
Paprika X
Peperoni
Knoblauch X
Oliven
Zwiebeln
Mini
Maxi O
Bachschmerzen
Käserand X
-> pizza2 + krand2 + 2 * kat12

Würde mich über jede Hilfe freuen,
MfG
kreez
 

Khal Drogo

Bekanntes Mitglied
Du kannst dir fix eine Methode schreiben, die für dich zählt, wie viele Checkboxen angeklickt wurden, jetzt stellt sich nur die Frage, ob sich das für die Größe deines Problems lohnt. Für größere Listen wäre es definitiv empfehlenswert.
ButtonGroups stellen diese Funktionalität jedenfalls meines Wissens nach nicht bereit, liefern aber alles, was du brauchst, um diese Funktionalität selbst zu implementieren.

Mit freundlichen Grüßen
Xelsarion
 

kreez

Mitglied
Du kannst dir fix eine Methode schreiben, die für dich zählt, wie viele Checkboxen angeklickt wurden, jetzt stellt sich nur die Frage, ob sich das für die Größe deines Problems lohnt. Für größere Listen wäre es definitiv empfehlenswert.
ButtonGroups stellen diese Funktionalität jedenfalls meines Wissens nach nicht bereit, liefern aber alles, was du brauchst, um diese Funktionalität selbst zu implementieren.

Mit freundlichen Grüßen
Xelsarion
Danke für deine Antwort, wie genau kann ich denn die Checkboxen in eine Buttongroup setzen?
Code:
ButtonGroup buttonGroup1 = new ButtonGroup();
buttonGroup.add(checkbox_paprika);
Klappt nicht ...
 

kreez

Mitglied
Warum klappt es denn nicht? (Fehlermeldung o. ä. wird benötigt)
Vielleicht solltest du dich mal einlesen: https://docs.oracle.com/javase/7/docs/api/javax/swing/ButtonGroup.html

Mit freundlichen Grüßen
Xelsarion
Okay nach ein wenig rumprobieren klappt es nun, dass sie in einer ButtonGroup sind, aber es sollen ja auch mehrere in einer Gruppe anklickbar sein. Ist das möglich und wenn ja, wie krieg ich hin das er zählt wieviele es sind?
 

Khal Drogo

Bekanntes Mitglied
Oh ja, wie ich gerade selber in der Dokumentation der ButtonGroup lese, ist die ButtonGroup darauf ausgelegt, nur eine Auswahl zuzulassen. Das ist also an dieser Stelle ohnehin nicht zu gebrauchen.
Allgemein kannst du dir aber auch ohne ButtonGroup eine Methode schreiben, die einen Array (o. ä.) von Checkboxen erhält, und dann zählt, wie viele ausgewählt sind. Dann musst du am Ende nur den richtigen Parameter übergeben.

Mit freundlichen Grüßen
Xelsarion
 

kreez

Mitglied
Oh ja, wie ich gerade selber in der Dokumentation der ButtonGroup lese, ist die ButtonGroup darauf ausgelegt, nur eine Auswahl zuzulassen. Das ist also an dieser Stelle ohnehin nicht zu gebrauchen.
Allgemein kannst du dir aber auch ohne ButtonGroup eine Methode schreiben, die einen Array (o. ä.) von Checkboxen erhält, und dann zählt, wie viele ausgewählt sind. Dann musst du am Ende nur den richtigen Parameter übergeben.

Mit freundlichen Grüßen
Xelsarion
Die Sache ist das ich in der Schule Arrays bissher nicht hatte und somit nicht wirklich weiß, wie sie zu benutzen sind und ich anscheinend auch If-Verzweigungen nutzen soll. Ich hab's gerade mit folgendem probiert, was auch klappt(ohne die ButtonGroup), aber denk ich für alle Variationen nicht ein wenig zu umständlich ist?
Code:
if (chbx_paprika.isSelected() && rbtn_mini.isSelected() && chbx_krand.isSelected()) {
      preis = pizza1 + krand1 + kat1;
      lbl_output.setText("Preis: " + preis + " Euro");
      preis = preis * 100;
      preis = Math.round(preis);
      preis = preis / 100;
    }
 

Khal Drogo

Bekanntes Mitglied
Was soll dieses Preis = Preis * 100 etc. bewirken?
Du musst es ja nicht so machen. Fang einfach an, den Grundpreis zu bestimmen (Größe der Pizza, Käserand oder nicht?). Darauf addierst du dann die Beläge. Einfach einzelne if-Abfragen. Ich würde gerne ein kurzes Beispiel schreiben, ist am Handy allerdings recht umständlich..

Das folgende kann ich zwar nicht mit Gewissheit sagen, würde mich aber nicht wundern: Wenn ihr noch keine Arrays hattet, soll euch das hier eventuell zeigen, wie umständlich vieles ohne Array ist und dann wird euch nächste Stunde vielleicht die viel übersichtlichere Lösung mit Arrays präsentiert.
Eine andere Frage ist, warum ihr mit Oberflächenprogrammierung etc. loslegt, bevor essenzielle Grundlagen vorhanden sind.

Mit freundlichen Grüßen
Xelsarion
 

Khal Drogo

Bekanntes Mitglied
So, jetzt vom Laptop aus ein kurzes Beispiel:
Java:
double preis;
if(miniPizza) {
  preis = ...;
  if(kaeserand) {
    preis += ...;
  }
  if (zutat1) {
    preis += ...;
  }
  if(zutat2) {
    // ...
  }
  // restliche Zutaten addieren miniGröße
} else if(maxiPizza) {
  preis = ...;
  // Zutaten addieren maxiGröße
} else if(bauchschmerzen) {
  preis = ...;
  // Zutaten addieren bauchschmerzenGröße
}

Mit freundlichen Grüßen
Xelsarion
 

kreez

Mitglied
Was soll dieses Preis = Preis * 100 etc. bewirken?
Du musst es ja nicht so machen. Fang einfach an, den Grundpreis zu bestimmen (Größe der Pizza, Käserand oder nicht?). Darauf addierst du dann die Beläge. Einfach einzelne if-Abfragen. Ich würde gerne ein kurzes Beispiel schreiben, ist am Handy allerdings recht umständlich..

Das folgende kann ich zwar nicht mit Gewissheit sagen, würde mich aber nicht wundern: Wenn ihr noch keine Arrays hattet, soll euch das hier eventuell zeigen, wie umständlich vieles ohne Array ist und dann wird euch nächste Stunde vielleicht die viel übersichtlichere Lösung mit Arrays präsentiert.
Eine andere Frage ist, warum ihr mit Oberflächenprogrammierung etc. loslegt, bevor essenzielle Grundlagen vorhanden sind.

Mit freundlichen Grüßen
Xelsarion
Warum genau wir mit GUIs anfangen weiß ich selber nicht so recht, wir hatten vorher eher in der Konsole leichte Rechenaufgaben, aber Arrays und auch Methoden hatten wir irgendwie noch nicht...
das
Code:
      preis = preis * 100;
      preis = Math.round(preis);
      preis = preis / 100;
ist damit der Preis im Label nur 2 Kommastellen als Double hat ^^.

Also schreibe ich 3 Varianten mit der Größe und 3 mit der Größe und dem Käserand und setzte diese dann mit den Belägen in if-Abfragen?

Edit, gerade deinen 2ten Beitrag gelesen, vielen Dank!
Werde versuchen dran rumzuwerkeln und wenn ich noch Probleme habe melde ich mich :).
 

Khal Drogo

Bekanntes Mitglied
Naja, kann man so machen...
An der Stelle sollte man vielleicht auch erwähnen, dass allgemein keine double oder float für Geldbeträge benutzt werden sollten, da hierbei Rundungsfehler auftreten können. Für schulische Zwecke reicht das vermutlich erstmal, solltest du später mal beruflich damit zu tun haben, denk bitte dran ;)

Den Käserand kannst du ja quasi wie einen Belag betrachten und den Aufpreis addieren.

Mit freundlichen Grüßen
Xelsarion
 

kreez

Mitglied
Naja, kann man so machen...
An der Stelle sollte man vielleicht auch erwähnen, dass allgemein keine double oder float für Geldbeträge benutzt werden sollten, da hierbei Rundungsfehler auftreten können. Für schulische Zwecke reicht das vermutlich erstmal, solltest du später mal beruflich damit zu tun haben, denk bitte dran ;)

Den Käserand kannst du ja quasi wie einen Belag betrachten und den Aufpreis addieren.

Mit freundlichen Grüßen
Xelsarion
Danke, werde ich mir merken :).
Im übrigen kann ich schon casten, aber Arrays hatten wir noch nicht. :confused:
Hier ein Beispiel was wir alles gemacht haben:
Was lernen Sie?
- die grundlegenden Begriffe der Programmierung
- den Grundaufbau eines Java-Programmsund einer GUI
- Grundlegende Funktionsweise von Variablen, Datentypen
- Variablennamen nach Konventionen auswählen
- Verzweigungen (Selektion) und Programmierdiagramme
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
U Swing Hilfe beim Quellcode für ein Codierungs-/Decodierungsprogramm Allgemeine Java-Themen 9
zer0zer0 Best Practice apache common cli - optionen für hilfe ausblenden Allgemeine Java-Themen 5
B Dringend Hilfe gesucht für Struktogramm Allgemeine Java-Themen 11
S brauche Hilfe für ssh connection in java Allgemeine Java-Themen 6
S Brauche Hilfe bei Planung für JAVA-Programm Allgemeine Java-Themen 3
S hilfe für drucken Allgemeine Java-Themen 4
W Hilfe bei Methode Allgemeine Java-Themen 14
M Javascript Hilfe bei ToDoList? Allgemeine Java-Themen 1
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
T Hilfe bei negation von suchabfrage Allgemeine Java-Themen 2
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
N Hilfe bei RegEx benötigt Allgemeine Java-Themen 3
A Hilfe beim Verständnis Allgemeine Java-Themen 16
V Hilfe mit Java Code Allgemeine Java-Themen 4
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
alinakeineAhnungv Hilfe bei einem Straßenbahn-Projekt von mir Allgemeine Java-Themen 18
Aboya Kugel mit Hilfe von Dreiecken rekursiv zeichnen Allgemeine Java-Themen 2
K Anzeigemöglichkeit von Bildern in JavaFX mit Hilfe von MongoDB GridFS Allgemeine Java-Themen 0
A Preisberechnung, Hilfe Allgemeine Java-Themen 4
M Bräuchte Hilfe bei der Aufgabe Allgemeine Java-Themen 1
s_1895 Hilfe bei Java Tic Tac Toe Allgemeine Java-Themen 8
J Hilfe, Jar Datei kann nicht ausgeführt werden Allgemeine Java-Themen 2
M Hilfe bei einer Java Programmieraufgabe! Ab morgen Montag um 08:00 Uhr Allgemeine Java-Themen 5
B Bei Email: FW / AW... - Hilfe bei String suche Allgemeine Java-Themen 21
U Erste Schritte Hilfe bei simplem Glücsspiel in Java Allgemeine Java-Themen 4
K Objektorientierung, hilfe Allgemeine Java-Themen 9
V Bilder bei bestimmten Zeiten wechseln, bitte um Hilfe Allgemeine Java-Themen 5
D Hilfe bei Informatik Hausaufgaben Allgemeine Java-Themen 30
RalleYTN Brauche Hilfe beim Run-Length-Decoding Allgemeine Java-Themen 9
S Hilfe bei dem Auslesen einer YAML Datei Allgemeine Java-Themen 8
F NetBeans Hilfe!!! Allgemeine Java-Themen 23
H Schiffe versenken JButton Schiffe mit GUI verbinden Hilfe! Allgemeine Java-Themen 2
M Bitte Hilfe mit REGEX (Negieren) Allgemeine Java-Themen 4
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
S GetMethode erstellen mit Hilfe von Parametern Allgemeine Java-Themen 9
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
B Hilfe bei Übungsblätter Allgemeine Java-Themen 9
O Erste Schritte Benzinverbrauch Code Hilfe Allgemeine Java-Themen 3
C Hilfe Bei Vegas Slide Allgemeine Java-Themen 0
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
Ice4P4rty Hilfe Bei Promillerechner Allgemeine Java-Themen 9
C Atfx mit Hilfe von OpenAtfx auslesen Allgemeine Java-Themen 1
perlenfischer1984 Hilfe bei Design (Pattern) Allgemeine Java-Themen 5
G Hilfe bei Projektarbeit Allgemeine Java-Themen 5
GenerationLost Input/Output Custom Serialization - hilfe bei Realisierung Allgemeine Java-Themen 8
J Hilfe!!! Ausbildung Allgemeine Java-Themen 14
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
B Swing Hilfe bei Abfrage von Benutzernamen und Passwort Allgemeine Java-Themen 2
T Hilfe bei Code Allgemeine Java-Themen 3
S Hilfe bei Gui Allgemeine Java-Themen 3
O Best Practice Hilfe bei Algorithmus gesucht Allgemeine Java-Themen 10
GRAZZ0R Hilfe zum Spiel Mensch ärger dich nicht Allgemeine Java-Themen 1
C Hilfe bei den Ausgaben Allgemeine Java-Themen 4
J Hilfe bei Datumsberechnung aus Textfeld Allgemeine Java-Themen 10
I Bitte Drngend hilfe Allgemeine Java-Themen 2
C Hilfe bei NoClassDefFoundError Allgemeine Java-Themen 14
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
I Methoden Schnelle Hilfe benötigt - Kleines Video/Slideshow aus mehreren Bildern erstellen Allgemeine Java-Themen 3
C Hilfe bei einer Point Ausgabe Allgemeine Java-Themen 7
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
N Erste Schritte [HILFE] effizienter,leistungsfähigermbackground Pixelbot Allgemeine Java-Themen 5
A Hilfe gesucht Allgemeine Java-Themen 44
X ArrayList will nicht so wie ich will. Hilfe Allgemeine Java-Themen 8
C Hilfe bei einer Fehlermeldung Allgemeine Java-Themen 5
C Hilfe bei MalformedURLException Allgemeine Java-Themen 7
D Baum zeichnen hilfe Allgemeine Java-Themen 4
M Hilfe bei parseInt Allgemeine Java-Themen 4
F Compiler-Fehler Hilfe bei Startup error Allgemeine Java-Themen 3
D Mit Hilfe von Java aus Excel-Sheet Zellen in neues Excel Dokument kopieren Allgemeine Java-Themen 3
F Socket NullPointerException Bitte um hilfe! Allgemeine Java-Themen 12
M Input/Output Java + OCR ? Erfahrungen und bitte um Hilfe Allgemeine Java-Themen 12
M Brauche Hilfe bei Quellcodeverständnis Allgemeine Java-Themen 4
B Zahlen ausgeben hilfe! Allgemeine Java-Themen 8
S Java USB dringend Hilfe! Allgemeine Java-Themen 6
X Hilfe bei Programm Allgemeine Java-Themen 5
F Bitte um Hilfe! Allgemeine Java-Themen 5
S Hilfe bei geeignetem Pattern (Decorierer) Allgemeine Java-Themen 2
D Brauche Hilfe bei Rechnung (Exponentiation) Allgemeine Java-Themen 12
F Brauche Hilfe bei Java Allgemeine Java-Themen 6
S Hilfe bei simplem Programm Allgemeine Java-Themen 3
J Ein blutiger Anfänger braucht Hilfe Allgemeine Java-Themen 7
B Hilfe bei JUnit Test Allgemeine Java-Themen 1
A ALTER TABLE mit Hilfe von RegEx zerlegen, splitten Allgemeine Java-Themen 5
C Brauche Hilfe mit Modulo Strategie Allgemeine Java-Themen 2
S Brauche Hilfe: Prüfungsaufgabe Java Allgemeine Java-Themen 8
J Probleme bei kompilieren ... Bitte um Hilfe Allgemeine Java-Themen 2
G java.exe in System 32. Hilfe!!! Allgemeine Java-Themen 8
M google plus java api - Anfänger sucht Hilfe Allgemeine Java-Themen 7
M Hilfe mit JOptionPane Allgemeine Java-Themen 2
I Hilfe: Klasse Vieleck Allgemeine Java-Themen 5
I javax.sound.sampled.* - Hilfe zu den Controls Allgemeine Java-Themen 8
C Hilfe bei Adressbuch-Programmierung, wie am Besten mit JList implementieren Allgemeine Java-Themen 2
S Hilfe bei der Cosinusapproximation Allgemeine Java-Themen 10
K Arraylist Hilfe Allgemeine Java-Themen 13
K Hilfe Felder Allgemeine Java-Themen 7
T Hilfe im Lizenz-Dschungel Allgemeine Java-Themen 11
W sql Query abspeichern selber variabele hilfe...? Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben