Effizienter Weg, um viele verschiedene swing-Objekte zu einem panel/frame. (Java)

Ich versuche zu tun, wie der Titel sagt.

Habe ich eine effiziente Möglichkeit für die Buchung von mehreren der gleichen swing-Objekte zu einem Rahmen, indem wir Sie in ein array und addieren Sie mithilfe einer for-Schleife etwa so:

JLabel[] contrllabels= new JLabel[8];
contrllabels[0] = new JLabel("SCF Type: ");
contrllabels[1] = new JLabel("Units: ");
contrllabels[2] = new JLabel("Spherical Harmonics: ");
contrllabels[3] = new JLabel("Molecular Charge: ");
contrllabels[4] = new JLabel("PP: ");
contrllabels[5] = new JLabel("DFT Type: ");
contrllabels[6] = new JLabel("Max Iterations: ");
contrllabels[7] = new JLabel("Mult: ");


for(int i = 0;i<contrllabels.length;i++){
    c.gridy = i;
    frame.add(contrllabels[i],c);
}

Aber was, wenn es mehrere swing-Objekte von verschiedenen Typen? Ich habe mehrere Kombinationsfelder und Textfelder, die ich gerne Hinzugefügt werden, um den Rahmen in einer ähnlichen Weise. Ich verwende gridbaglayout so, wenn ich nicht eine for-Schleife verwenden, ich am Ende mit viel unnötigen code durch Angabe der Einschränkungen neue Werte jedes mal möchte ich ein anderes Objekt Hinzugefügt.

Gibt es so etwas wie ein array von Referenzen, die auf diese verschiedenen Gegenstände, die kann ich dann Durchlaufen Sie auf hinzufügen, um den frame? So etwas wie

JTextField tf = new JTextField(5);
JComboBox cb = new JComboBox("example");

Swing[] array = {tf,cb}

for(int i = 0;i<array.length;i++){
    c.gridy = i;
    frame.add(array[i],c);
}

Ich weiß, so ein array nicht existiert, aber gibt es eine Möglichkeit der Umsetzung einer solchen Sache? Es würde erheblich reduzieren die Anzahl der Zeilen in meinen code und machen es weniger verwirrend.

Danke

  • wie JComponent?
  • zumindest können Sie die Object-arrays. Ich schlage vor, Sie verwenden eine ArrayList obwohl. Sie können feststellen, selbst benötigen, um entfernen Sie ein Objekt aus der Zukunft und Sie werden das verschieben aller Ihrer Elemente...verschwenden eine Menge Zeit! ArrayList wird unterstützt durch ein array und das bisschen Mehraufwand ist es sinnlos, auf den Maschinen, wir führen diese Tage...und sogar Handys! Sollten Sie überlegen, Lesen von java.util.ArrayList-code, um zu sehen, wie es funktioniert und du bekommst ein besseres Gefühl für alles.
InformationsquelleAutor user1147964 | 2012-01-13
Schreibe einen Kommentar