ComboBox-Werte aus einem Array an Textfields übergeben

smokejumper

Neues Mitglied
Hallo,

ich benötige Hilfestellung zu einem Problem.
Ich möchte, dass bei einer Tarifauswahl aus der ComboBox"Tarifliste" die jeweiligen Detail-Werte an 3 TextFields übergeben werden sollen.
Wie könnte ich so etwas lösen?

Java:
String[][] Tarife =  {
        				
        				{"Tarif1", "Detail1", "Detail2","Details"},
        				{"Tarif2", "Detail1", "Detail2","Details"},
        				{"Tarif3", "Detail1", "Detail2","Details"},
        				{"Tarif4", "Detail1", "Detail2","Details"},
        				{"Tarif5", "Detail1", "Detail2","Details"}
        		    		};
for(int i = 0; i<Tarife.length;i++)Tarifliste.addItem(Tarife[i][0]);
 
Ich hätte der JComboBox einen Listener angefügt, geguckt was der User ausgewählt hat und dann per
Code:
setText()
die Tarife eingefügt. Wo ist das Problem? Verstehe ich die Frage vielleicht nicht so ganz?

Tipp: je nachdem, was du brauchst sind ArrayList, Vector (veraltet!) oder SortList etc praktischer!

Auch eine eigene Klasse könntest du für Tarife einrichten so ungefähr:

Java:
class Tarif
{
     public Tarif(String name, int preis, String detail)
     {
          ...
     }
}
Und danach eine List<Tarife> erstellen, in der du alle Tarife sammelst!

BTW: Variablennamen schreibt man klein!
 
Zuletzt bearbeitet:
Der ComboBox habe ich anhand deiner Antwort einen Listener zugefügt und übergebe den ausgewählten Wert an mein JTextField. -dies klappt-

Wie kann ich noch die dazugehörigen Details1, Details2, Details3 an die anderen drei TextFields übergeben?

Java:
String[][] tarife =  {
        				
        				{"Tarif1", "Details1", "Details2","Details3"},
        				{"Tarif2", "Details1", "Details2","Details3"},
        				{"Tarif3", "Details1", "Details2","Details3"},
        				{"Tarif4", "Details1", "Details2","Details3"},
        				{"Tarif5", "Details1", "Details2","Details3"}
        		    		};
    			for(int i = 0; i<tarife.length;i++)tarifliste.addItem(tarife[i][0]);
    			    			
    			tarifliste.addActionListener(new ActionListener() {
    	                public void actionPerformed(ActionEvent e) {
    	                final Object selectedItem = tarifliste.getSelectedItem();
    	                tftarif.setText("" + selectedItem);
    	            }
    	        });
 
Um dir nicht gleich die Antwort in JAVA zu geben hier mal die Anhaltspunkte:

->
Code:
selectedItem
zu einem String parsen
-> den String in dem String-Array finden. Du weißt nicht wie? Hilfestellung im Spoiler, aber versuch das mal alleine herauszufinden 😉
Eine ineinander doppelte for-Schleife könnte das erledigen.
Per
Code:
a.equals(b);
testen, wo
Code:
selectedItem
vorkommt und dann anhand der Variablen in den for-Schleifen feststellen, wo im Array sich das
Code:
selectedItem
befindet. Diese Schleifen sollten einmal mit tarife.length und 4 limitiert werden (4 Variablen in jedem Array).
Angenommen, dass x die Variable der ersten Schleife und y die der zweiten Schleife ist, dann befinden sich
Code:
selectedItem
an der Stelle tarife[x][y]. Danach musst du nurnoch die Details mit tarife[x][y+1] etc abfragen.
->die gefundenen Strings in die TextFields schreiben.

Hoffe das war so ein wenig verständlich, ansonsten dann eine Hilfestellung in Pseudocode 🙂
 

Neue Themen


Zurück
Oben