2016-06-19 5 views
0

Ich habe eine Klasse namens "Sprache" und brauche ein Attribut "getSprache", welches eine get Methode ist. Ich möchte alle "getSprache" zu einer Jcombobox anzeigen. Ich habe eigentlich ein DefaultComboboxModel. Wie kann ich es tun? Benötige ich eine Liste? Wie sieht eine Schleife für das Modell aus?JAVA - bekomme Attribut von Klasse zu Liste

public class Sprache { 

private int id; 
private String sprache; 
private String kuerzel; 

public int getId() { 
    return id; 
} 
public String getSprache() { 
    return sprache; 
} 
public String getKuerzel() { 
    return kuerzel; 
} 
private void setId(int id) { 
    this.id = id; 
} 
private void setSprache(String sprache) { 
    this.sprache = sprache; 
} 
private void setKuerzel(String kuerzel) { 
    this.kuerzel = kuerzel; 
} 

@Override 
public String toString() { 
    return "Sprache [id=" + id + ", sprache=" + sprache + ", kuerzel=" + kuerzel + "]"; 
} 

}

+1

Ich bin irritiert. Sie haben also mehrere Sprache-Objekte, die Sie in eine JComboBox oder nur eine mit anderen Strings einfügen können, oder wollen Sie diesen String aufteilen? – GreenThor

+0

Was enthält 'sprache'? Eine einzelne Sprache oder eine Liste mehrerer Sprachen? Hast du irgendwo eine 'List '? Derzeit ist diese Frage ziemlich unklar. – sinclair

+0

Ich möchte nur die Strings anzeigen, String sprache enthält die Sprache auch wie Englisch, Deutsch, Italienisch. Es sollte eine Liste von mehreren Sprachen zur Auswahl sein. – Plex

Antwort

0

Wenn Ihre Klasse Sprache enthält eine „Sprache“ (Sprache), dann können Sie durch alle von ihnen durchlaufen und rufen #getSprache() auf jeder und speichern den Rückgabewert in einem String-Array :

// Instantiate Classes 
Sprache sprache1 = new Sprache(); 
sprache1.setId(0); 
sprache1.setKuerzel("EN"); 
sprache1.setSprache("English"); 

Sprache sprache2 = new Sprache(); 
sprache2.setId(1); 
sprache2.setKuerzel("DE"); 
sprache2.setSprache("Deutsch"); 

List<Sprache> sprachen = new ArrayList<>(2); 
sprachen.add(sprache1); 
sprachen.add(sprache2); 

// Create an array from the langues 
String sprachenStringArray[] = {sprache1.getSprache(), sprache2.getSprache()}; 
// Alternative way 
String sprachenStringArray[] = new String[sprachen.size()]; 
for (int i = 0; i < sprachen.size(); i++) 
{ 
    sprachenStringArray[i] = sprachen.get(i).getSprache(); 
} 

// Create combo box model 
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>(sprachenStringArray);