Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann?

Funkeyfreak

Aktives Mitglied
Ich weiß wie ich den Wert der ComboBox auslese (also welcher Array-Wert ausgewählt wurde), jedoch weiß ich nicht wie ich diesen Wert in einer Variable speichern und diese in meinem ActionListener benutzen kann.

Ich hab versucht eine global variable zu benutzen und in dieser den Wert zu speicher, aber das funktioniert nicht da der Variablen wert in der Methode "public void itemStateChanged(ItemEvent arg0){" feststeckt und ich diese daher nicht in meinem ActionListener benutzen kann.

Ich hoffe ihr könnt mir helfen. Bin echt am verzweifeln...

Code:
String [] WarenTypListe = {"","Hochfrequente Ware", "Normale Ware"};
        JComboBox comboBoxHochfrequent = new JComboBox(WarenTypListe);
        comboBoxHochfrequent.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent arg0) {
                if(arg0.getStateChange() ==ItemEvent.SELECTED) {
                    //System.out.println(comboBoxHochfrequent.getSelectedIndex());
                    int s= comboBoxHochfrequent.getSelectedIndex();      -> diese Variable steckt fest in der Methode (auch wenn ich sie global definieren würde)

                }
            }
        });
        comboBoxHochfrequent.setFont(new Font("Tahoma", Font.BOLD, 30));
        comboBoxHochfrequent.setBounds(600, 144, 224, 49);
        contentPane.add(comboBoxHochfrequent);
      
        JButton btnArtikelHinzufuegen = new JButton("Artikel hinzuf\u00FCgen");
        btnArtikelHinzufuegen.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                DBConnect connect = new DBConnect();
                int s = comboBoxHochfrequent.getSelectedIndex();        -> hier versuch ich auf den Wert der ausgewählt wurde zuzugreifen was aber nicht funktoniert da ich nicht in der " public void itemStateChanged(ItemEvent arg0) {" Methode bin.
                boolean hochfrequent = false;
                if (s==1) {
                    hochfrequent = true;
                }
                if (s==2) {
                    hochfrequent = false;
                }
                System.out.println("es hat geklappt"+s);
                try {
                connect.setWareHinzufuegen(ArtikelIdInt, Artikelname, AnzahlWare, VeInt, zielort, regalnummerInt, hochfrequent);
                }
                catch (Exception e) {
                    System.err.println(e);
                }

            }
        });
-> die System.out.println benutze ich zum testen meines Programmes

PS: um den Code übersichtlicher zu gestalten habe ich die anderen varibalen die ich für die Kommunikation mit meiner DB brauche entfernt. -> die übergabe des Wertes von der ComboBox ist mein einziges Problem derzeit...
 
K

kneitzel

Gast
Hallo,

die Problematik hier ist aus meiner Sicht das Verständnis der Gültigkeit. Du hast mehrere Möglichkeiten, Variablen zu definieren:

Java:
public class Test {
    /**
     * Diese Variable ist statisch und existiert daher direkt in der Klasse.
     * Das heisst, sie existiert i.d.R. nur ein einziges Mal.
     * Zugriff erfolgt direkt über die Klasse also Test.staticInt und benötigt keine Instanz.
     */
    public static int staticInt;
    
    /**
     * Instanz-Variablen existieren direkt in der Instanz und können immer zugegriffen werden,
     * wenn du eine Instanz hast. (z.B. innerhalb von nicht statischen Methoden durch this.instanceInt)
     */
    public int instanceInt;
    
    /**
     * Eine Methode, die dann auf instanceInt zugreift.
     */
    public void someMethod() {
        instanceInt = 1;
        
        // Und nun noch eine lokale Variable. Die existiert nur hier bis zum Ende dieser Methode
        int localInt = 1;
    }
}

Das bedeutet also, dass Du den zuletzt selektierten Wert statt in einer lokalen Variable in einer Instanz-Variable speichern solltest. Also die Deklaration nicht in der Methode sondern in der Instanz selbst durchführen.

An dieser Stelle sollte man dann aber ggf. überlegen:
a) Erkennung, dass noch nichts selektiert wurde: Also auf was wird der Wert initialisiert? Man kann statt int z.B. Integer nutzen, dann wird null möglich. Man kann Optional<> verwenden. Oder da der Index immer >= 0 ist, kann auch -1 oder so als Erkennung genutzt werden.

b) Erwartungen des Benutzers / Usecase:
Ich glaube ich würde es verwirrend finden, wenn ein einmal selektierter Wert immer noch genommen würde, auch wenn die Selektion aufgehoben wurde. Daher würde ich immer bei der Action selbst schauen: Was ist denn gerade selektiert? Und das sollte doch auch in Deinem Code gehen, du musst nur eben den Fall abfangen, dass der Nutzer halt noch nichts selektiert hat. Dein Code, über comboBoxHochfrequent.getSelectedIndex(); den Index zu ermitteln, halte ich also durchaus für korrekt.
Wo ist das eigentliche Problem bei dem Code? Geht die Selektierung durch irgendwas wieder verloren, so dass Du meinst, dies noch einmal speichern zu müssen? Das ist ja im Element selbst gespeichert und daher ist eine Duplizierung nicht wirklich notwendig.
Aber meine Erwartungen können hier natürlich falsch sein und man will tatsächlich auch bei einer aufgehobenen Selektierung den Wert noch haben .... Aber in einer UI finde ich das eher verwirrend.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
G AWT Wie bekomme ich einen zeitgesteuerten robot hin? AWT, Swing, JavaFX & SWT 6
T bekomme keinen Focus auf JTextField AWT, Swing, JavaFX & SWT 3
S Bekomme bein Buttonklick das Jtextfield nicht ausgegeben AWT, Swing, JavaFX & SWT 8
Madlip SWT Wie bekomme ich e.getSource xxx AWT, Swing, JavaFX & SWT 2
A Bekomme das Label nicht in die Mitte von Reihe AWT, Swing, JavaFX & SWT 7
L Wie bekomme ich ein Mehrzeiliges JTextField? AWT, Swing, JavaFX & SWT 12
P Swing Wie bekomme ich eine Referenz auf ein Objekt das im EDT erzeugt wird? Und anderes... AWT, Swing, JavaFX & SWT 8
I Swing Wie bekomme ich den Fokus für einen JPanel AWT, Swing, JavaFX & SWT 5
pinerski Swing Wie bekomme ich bei einer JComboBox den Text? AWT, Swing, JavaFX & SWT 2
K bekomme Seitenwechsel nicht hin AWT, Swing, JavaFX & SWT 4
S Hilfe! Bekomme Daten nicht ausgelesen AWT, Swing, JavaFX & SWT 3
V Hilfe :( bekomme textarea nicht versetzt AWT, Swing, JavaFX & SWT 2
W Vom JPanel bekomme ich keine Events AWT, Swing, JavaFX & SWT 5
I selectedText: Wie bekomme ich Zugriff auf den Text? AWT, Swing, JavaFX & SWT 4
H Bekomme den TreeSelectionListener nicht zum Laufen AWT, Swing, JavaFX & SWT 5
V SWT (JFace): bekomme das FormLayout nicht hin. AWT, Swing, JavaFX & SWT 4
G Wie bekomme ich ein JFrame/JDialog zum Blinken? AWT, Swing, JavaFX & SWT 6
E Wie bekomme ich hier ein vertikale JScrollPane hin?? AWT, Swing, JavaFX & SWT 4
G Bekomme immer: NullPointerException AWT, Swing, JavaFX & SWT 2
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
S hashCode int wert AWT, Swing, JavaFX & SWT 6
B Slider-Wert an anderen Slider übergeben AWT, Swing, JavaFX & SWT 5
S Caps-Lock Überprüfung gibt falschen Wert zurück AWT, Swing, JavaFX & SWT 1
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
K Swing DefaultListModel braucht zu lange, um Wert zu setzen AWT, Swing, JavaFX & SWT 7
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
M JavaFX Wert aus Tabellenzelle auslesen AWT, Swing, JavaFX & SWT 4
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
A Unterklasse schreibt Wert in JFrame AWT, Swing, JavaFX & SWT 4
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
M Swing Alter Wert von einer Variable wird verwendet AWT, Swing, JavaFX & SWT 8
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
M JSlider-Wert ändern, ohne ein ChangeEvent auszulösen AWT, Swing, JavaFX & SWT 4
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
A Ermittelter Wert auf Formular übertragen. AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
N Button Wert zuweisen AWT, Swing, JavaFX & SWT 3
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
L Swing Falscher Wert nach eigener Sortierung (JTable) AWT, Swing, JavaFX & SWT 2
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
C Swing JTable: edit Cell -> versteckten Wert ändern AWT, Swing, JavaFX & SWT 12
B JSlider - Wert am Mouszeiger anzeigen lassen AWT, Swing, JavaFX & SWT 6
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
S Frame - Panel - Dialog rückgabe wert AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
L ArrayList Wert löschen klappt nicht AWT, Swing, JavaFX & SWT 11
C jtable hintegrundfarbe integer wert AWT, Swing, JavaFX & SWT 14
S Swing noch nicht übergebenen Wert aus JComboBox auslesen AWT, Swing, JavaFX & SWT 4
S JTable Wert so bekommen wie er angezeigt wird..? AWT, Swing, JavaFX & SWT 2
I Swing JComboBox Wert setzen AWT, Swing, JavaFX & SWT 4
S Swing In JComboBox Wert und ID integrieren AWT, Swing, JavaFX & SWT 16
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
G JTable - bei falscher Eingabe wird alter Wert genommen. AWT, Swing, JavaFX & SWT 2
P Bei JComboBox einem Eintrag Wert zuweisen AWT, Swing, JavaFX & SWT 7
A Wert einer JComboBox auslesen AWT, Swing, JavaFX & SWT 1
B JTable Wert in Vector einlesen AWT, Swing, JavaFX & SWT 4
G JComboBox - Anzeige mit Wert verknüpfen AWT, Swing, JavaFX & SWT 3
V Start Button und Wert Eingabe in ein Fenster AWT, Swing, JavaFX & SWT 2
L JTree Frage -> nur den Wert des Knotens ausgeben? AWT, Swing, JavaFX & SWT 2
L Jcombobox + value Wert AWT, Swing, JavaFX & SWT 7
M Wert von einem Fenster zum anderen übergeben AWT, Swing, JavaFX & SWT 3
J Problem mit Alpha-Wert beim Button AWT, Swing, JavaFX & SWT 3
S JTextField. Bei Abbruch vorherigen Wert wiederherstellen AWT, Swing, JavaFX & SWT 2
D Wert von Kasse2 an Klasse1 übergeben AWT, Swing, JavaFX & SWT 3
D Scrollbalken Wert setzen AWT, Swing, JavaFX & SWT 6
S Eingegeben Wert wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S Methoden return wert? AWT, Swing, JavaFX & SWT 7
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
G JRadioButton beim deselektieren Wert ändern. AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben