Die Initialisierung einer JComboBox [] - array
Sorry ich bin ein noob in java, aber wie Initialisiere ich die variable petList, ohne es gleich null?
for (int x = 0;x<= buttonPressed;x++){
println("adding box");
String[] petStrings = { "Withdraw", "Deposit", "Blah", };
//Create the combo box, select item at index 4.
@SuppressWarnings({ "rawtypes", "unchecked" })
JComboBox petList[] = null;//= new JComboBox(petStrings);
petList[x] = new JComboBox(petStrings);
petList[x].setSelectedIndex(1);
petList[x].setBounds(119, (buttonPressed *20)+15, 261, 23);
contentPane.add(petList[x]);
}
- Erstellen Sie das array selbst zuerst:
JComboBox petList[] = new JComboBox[sizeHere];
- unrelated: nicht jede manuelle Dimensionierung/Anordnung der Komponenten, immer - das ist die exklusive Aufgabe der LayoutManager.
- Nur ein kleiner Punkt auf der convention, wenn Sie ein array deklarieren, ist es gute Praxis zu setzen, die Klammern neben den deklarierten Typ und nicht nach der id. So
JComboBox petList[];
wäreJComboBox[] petList;
. Es ist leichter für andere zu Lesen, wie die. Donald Knuth zitieren, die relevant; "konzentrieren wir uns lieber auf die Schilderung der menschlichen Wesen, was wir wollen, einen computer zu tun"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Drei Dinge, die Sie berücksichtigen müssen, mit dem erstellen von arrays:
JComboBox [] petList;
petList = new JComboBox[someSize];
petList[i] = new JComboBox();
Also, nehmen Sie den
petList
außerhalb derfor-loop
(vielleicht definiert Sie als eine Instanz-variable wird besser sein):HINWEIS: dies ist nicht eine kompilierte code, der nur zeigt Ihr die Lösung Ihres Problems.
Müssen Sie eine Schleife. Diese entstehen andere Fehler, wie z.B. Grenzen überlappen, aber das sollte die Kernaussage: