2017-03-22 7 views
0

Ich arbeite, versuche und versage mich schon seit einiger Zeit. Ich muss zusätzliche Eingabefelder generieren. In meiner SQL-Datenbank habe ich zwei Tabellen, eine, die sagt, wie viele zusätzliche Felder ich generieren muss und welchen Typ (für Anfänger nur Eingabefelder). Und noch eine Tabelle, wo ich meine Daten in diese Felder schreiben kann. Also ich alle diese Daten als JSON String und ich übersetze sie in Strings. Jetzt habe ich alle diese Daten als Strings und basierend auf diesen Daten muss ich x Felder vom Typ y generieren (in diesem Fall Eingabefelder).Java - Wie automatisch Eingabefelder generieren?

Da der Code jetzt ist, erzeugt er nur ein Eingabefeld. Ich habe keine Ahnung, wie die Info zu verbinden und die Erstellung der Felder :(

Dies ist mein Code:

JSONObject jsonObjectZusatz = new JSONObject(ZusatzString); 
int ZusatzJSONlength = jsonObjectZusatz.length(); 
for(int key1 = 0; key1 < ZusatzJSONlength; key1++){ 
    JSONObject jsonObjectZusatzObjekt0 = jsonObjectZusatz.getJSONObject(String.valueOf(key1)); 
    String ZusatzNameJSON = jsonObjectZusatzObjekt0.getString("name"); // String auslesen!!! 
    String ZusatzTypJSON = jsonObjectZusatzObjekt0.getString("typ"); // String auslesen!!! 
    String ZusatzEintragJSON = jsonObjectZusatzObjekt0.getString("eintrag"); // String auslesen!!! 

    JTextField ZFtextField = new JTextField(); 
    ZFtextField.setBounds(118, 260, 136, 20); 
    contentPane2.add(ZFtextField); 
    ZFtextField.setColumns(10); 

    JLabel lblNewLabel = new JLabel("Stuff:"); 
    lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 15)); 
    lblNewLabel.setBounds(12, 263, 46, 14); 
    contentPane2.add(lblNewLabel); 

Dank im Voraus Sie

Antwort

0

Vom Teil für Schleife, die Sie Es scheint, dass JTextField und die entsprechenden Beschriftungen tatsächlich erstellt wurden, aber da die Werte in der setBounds() nicht bei jeder Iteration der Schleife inkrementiert werden, werden alle Ihre Label- und Textfelder überlagert kann nur eins sehen

Um dies zu lösen, sollten Sie, wenn Sie (x, y) Positionen Ihrer Objekte angeben, statt (Wert1, Wert2) die Werte (Wert1 + Schlüssel1 * xGap, Wert2 + Schlüssel1 * yGap) eingeben. Hier ist es Ihr Loop-Index, der Ihnen sagen wird, wie weit Sie Ihr Element bewegen sollten.

+0

Ja, ich weiß das, ich habe es hier nur statisch platziert, aber die Sache ist, dass ich nicht weiß, wie man es mit den gegebenen Daten erzeugt:/ –

+0

, wenn Sie Ihnen (x, y) Positionen, statt _ (value1 , value2) _, sollten Sie _ (value1 + key1 * xGap, value2 + key1 * yGap) _ setzen. Hier ist Ihr Loop-Index, der Ihnen sagen wird, wie weit Sie Ihr Element bewegen sollten. – Guillaume

+0

Ahh oke, aber das Hauptproblem ist, wie kann ich die Elemente dynamisch benennen? weil ich denke, dass ich zwei Eingabefelder mit dem gleichen Namen –

Verwandte Themen