Interface Fenster mit 3 ComboBoxen und 1 Button

Kenta1561

Bekanntes Mitglied
Hallo,

ich will ein kleines Programm schreiben, um mein Wissen im Bereich Java zu erweitern. Diesmal will ich ein Fenster mit 3 ComboBoxen nebeneinander und einem "OK"-Knopf erstellen. Mit der ersten Box soll man entweder "Gemüse", "Obst" oder "Getränk" auswählen können. Die zweite Box soll nicht anklickbar sein, bis man etwas in der ersten Box ausgewählt hat, und je nach dem, was man dann in der ersten Box gewählt hat soll man in der zweiten Box folgendes auswählen können:
Wenn man Gemüse gewählt hat: Paprika, Gurke, Möhre
Wenn man Obst gewählt hat: Trauben, Bananen
Wenn man Getränk gewählt hat: Wasser, Saft
Die dritte Box ist dafür da, dass man dort entweder, wenn man in der zweiten Box "Wasser" gewählt hat, dass man "still" oder "mit Kohlensäure" auswählen kann. Wenn man Paprika gewählt hat, soll man in der dritten Box eine Auswahl zwischen "Rot", "Grün" oder "Gelb" haben. Wenn man nicht "Wasser" oder "Paprika" gewählt hat, soll die dritte Box nicht anklickbar sein.
Wenn man alles ausgewählt hat, soll man dann auf "OK" drücken können, um die Eingabe zu bestätigen. Die Eingaben in den jeweiligen ComboBoxen sollen dann im String "art" für die erste Box, im String "lebensmittel" für die zweite Box und im String "genaueAngabe" gespeichert werden. Falls die dritte Box nicht benutzt wurde, weil man etwas anderes ausgewählt hat als "Paprika" oder "Wasser", soll der String genaueAngabe = ""; sein.

Ich würde mich sehr freuen wenn ihr mir helfen könntet.

MfG
Kenta1561
 

jofri

Mitglied
Wenn du nicht weißt wie du anfangen sollst. Uns wird immer in der Schule gesagt ein Programm Ablauf Plan oder Struktugramm zu machen. Mit dem hat man immer eine bessere Übersicht und mir fällt es dann auch leichter. Ich benutze am liebsten Pap Designer.
 

Kenta1561

Bekanntes Mitglied
Hallo,

erstmal danke für die Antworten. Ich habe zumindest erstmal angefangen, auch wenn ich nicht sehr weit gekommen bin. Die zwei Boxen (ich hab jetzt nur zwei Boxen genommen damit das einfacher wird) und den Button habe ich jetzt hingekriegt, hier mein Code:

Java:
package main;

import javax.swing.*;

public class Main {

    String[] items = {"Gemuese", "Getraenk", "Obst"};
    String[] items2 = {"Gurken", "Paprika"};
    JComboBox c = new JComboBox(items);
    JComboBox c2 = new JComboBox(items2);
    JButton b = new JButton("Submit");
    JLabel label = new JLabel();

    public void frame() {

        JFrame f = new JFrame();
        f.setVisible(true);
        f.setSize(400, 400);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel p = new JPanel();
        p.add(c);
        p.add(c2);
        p.add(b);
        f.add(p);

    }

    public static void main(String[] args) {

        Main main = new Main();
        main.frame();

    }

}

Ich weiß aber leider nicht, wie ich die zweite Box von der ersten Box abhängig machen lassen kann. Könnt ihr mir da vielleicht helfen?

MfG
Kenta1561
 

Joose

Top Contributor
Naja die 2.Box soll ja erst anklickbar sein wenn bei der 1. was ausgewählt wurde.
Daher sollte die 2.Box defaultmäßig disabled sein.

Der 1.Box hängst du einen entsprechenden Listener an, welcher dann die 2.Box enabled.
 

Kenta1561

Bekanntes Mitglied
Danke für die schnelle Antwort, aber bei mir ist bei der 1. Box schon von Anfang an etwas ausgewählt, deshalb bringt es mir nicht, die 2. Box erst dann zu aktivieren, wenn etwas in der 1. Box ausgewählt wurde. Oder ist es möglich, bei der ersten Box nichts ausgewählt zu haben?
 

Joose

Top Contributor
Du könntest zum Beispiel ein leeren String hinzufügen an 1.Stelle deiner "items". (ist aber sicher nicht die optimalste Lösung ;))
 

Kenta1561

Bekanntes Mitglied
Ah stimmt, das mache ich dann mal. Das heißt wenn bei der 1. Box NICHT der leere String ausgewählt ist, soll die 2. Box aktiviert werden, oder? Aber wie kann ich gucken, WAS bei der 1. Box ausgewählt wurde?
 

Kenta1561

Bekanntes Mitglied
Hallo,

hab mein Code jetzt geändert, ich weiß jetzt nicht ob das richtig ist, aber:

Java:
package main;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class Main {

    String[] items = {"", "Gemuese", "Getraenk", "Obst"};
    String[] items2 = {"Gurken", "Paprika"};
    JComboBox c = new JComboBox(items);
    JComboBox c2 = new JComboBox(items2);
    JButton b = new JButton("Submit");
    JLabel label = new JLabel();

    public void frame() {

        JFrame f = new JFrame();
        f.setVisible(true);
        f.setSize(400, 400);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel p = new JPanel();
        p.add(c);
        p.add(c2);
        c2.setEnabled(false);
        p.add(b);
        b.setEnabled(false);
        f.add(p);

        c.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                if(c.getSelectedItem().equals("Gemuese")) {
                    System.out.println("GEMUESE");
                    c2.setEnabled(true);
                } else if(c.getSelectedItem().equals("Obst")) {
                    System.out.println("OBST");
                    c2.setEnabled(true);
                } else if(c.getSelectedItem().equals("Getraenk")) {
                    System.out.println("GETRAENK");
                    c2.setEnabled(true);
                }
            }
        });

    }


    public static void main(String[] args) {

        Main main = new Main();
        main.frame();

    }

}

Ich habe beim ItemListener nicht weiter als System.out.println geschrieben, wollte nur gucken, ob alles funktioniert. Aber irgendwie wird zum Beispiel "GEMUESE" zweimal ausgegeben, woran liegt das?

MfG
Kenta1561
 

JStein52

Top Contributor
Kann es sein dass der ItemListener beim draufklicken und beim loslassen feuert ? Wäre im Prinzip aber auch egal. Und du brauchst nicht drei verschiedene Gemüseabfragen sondern eine und zwar ob es der Leerstring ist oder nicht. Und je nachdem setzt du Enabled auf true oder false
 

Kenta1561

Bekanntes Mitglied
Ich hab jetzt mein Code nochmal verändert, in der Hoffnung dass ich weiterkomme:

Java:
package main;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class Main {

    String[] items = {"", "Gemuese", "Getraenk", "Obst"};
    String[] items2 = new String[2];
    JComboBox c = new JComboBox(items);
    JComboBox c2 = new JComboBox(items2);
    JButton b = new JButton("Submit");
    JLabel label = new JLabel();

    public void frame() {

        JFrame f = new JFrame();
        f.setVisible(true);
        f.setSize(400, 400);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel p = new JPanel();
        p.add(c);
        p.add(c2);
        c2.setEnabled(false);
        p.add(b);
        b.setEnabled(false);
        f.add(p);

        c.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                if(c.getSelectedItem().equals("Gemuese")) {
                    System.out.println("GEMUESE!!!");
                    items2[0] = "Paprika";
                    items2[1] = "Gurke";
                    c2.setEnabled(true);
                } else if(c.getSelectedItem().equals("Obst")) {
                    System.out.println("OBST!!!");
                    String[] obst = {"Banane", "Traube"};
                    c2 = new JComboBox(obst);
                    c2.setEnabled(true);
                } else if(c.getSelectedItem().equals("Getraenk")) {
                    System.out.println("GETRAENK!!!");
                    String[] getraenk = {"Wasser", "Saft"};
                    c2 = new JComboBox(getraenk);
                    c2.setEnabled(true);
                }
            }
        });

    }


    public static void main(String[] args) {

        Main main = new Main();
        main.frame();

    }

}

Leider funktioniert das immer noch nicht so wie ich das haben will. Ich wusste nicht ganz wie ich die Auswahlmöglichkeiten für Box2 je nach Eingabe bei Box1 ändern kann, hab das jetzt so gemacht dass die Möglichkeiten im ItemListener gesetzt werden, leider geht das nicht.

Könnte mir da jemand helfen?

MfG
Kenta1561
 

JStein52

Top Contributor
Du musst die Items natürlich noch zur ComboBox hinzufügen. Etwa so:

Code:
if(c.getSelectedItem().equals("Gemuese")) {
                    System.out.println("GEMUESE!!!");
                    c2.removeAllItems();    // Alles leeren
                    items2[0] = "Paprika";
                    c2.addItem(items2[0]);
                    items2[1] = "Gurke";
                    c2.addItem(items2[1]);
                    c2.setEnabled(true);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
A Login Fenster Java Basics - Anfänger-Themen 3
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
J ordentliche Fenster Java Basics - Anfänger-Themen 17
J Problem beim Fenster Java Basics - Anfänger-Themen 4
Z Login Fenster Java Basics - Anfänger-Themen 7
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O Größeres Fenster als angegeben?! Java Basics - Anfänger-Themen 2
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
V Fenster wird nicht mittig platziert Java Basics - Anfänger-Themen 3
P gui fenster nur einmal aufrufen Java Basics - Anfänger-Themen 5
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
M OOP GUI - Fenster vererben? Java Basics - Anfänger-Themen 9
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
T Windows Fenster Schließen Java Basics - Anfänger-Themen 4
E JFrame Fenster bewegen Java Basics - Anfänger-Themen 8
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
E javaw öffnet trotzdem ein DOS Fenster Java Basics - Anfänger-Themen 15
M Output Input im Cmd Fenster Java Basics - Anfänger-Themen 7
M Neues Fenster Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben