Java -GUI -Komponenten erstellen
-
21-08-2019 - |
Frage
Ich hoffe, es ist korrekt zu sagen, dass Komponenten in einer GUI wie Jbutton, Jpanel, Jtextfield sind, all das gute Zeug.
Ich möchte ein Textfeld erstellen, das eine Ganzzahl aufnimmt. Anschließend kann eine Sendetaste gedrückt werden und basierend auf der Ganzzahl, die eingegeben wurde, erstellen Sie so viele Textfelder in einem Popup -Fenster oder was auch immer.
Ich habe keine Ahnung, könnte mich jemand in die richtige Richtung bringen?
Das Problem, das ich habe, ist, dass ich keine Ahnung habe, wie ich eine für Schleife erstellen kann, um die GUI -Komponenten zu erstellen. Ich meine, wenn ich eine für Schleife habe und so etwas wie:
print("JTextField num1 = new JTextField()");
In einer für die Schleife erstellt es nur 1 Textfeld, wenn ich viele möchte. Wie erstelle ich allgemein Variablen von jTextfields?
Danke für Ihre Hilfe...
Lösung
Verwenden Sie einen geeigneten LayoutManager (z. B. GridLayout), um Ihre Textfelder zu erstellen und hinzuzufügen.
for (i = 0; i < numberOfTextFields; i++) {
JTextField textField = new JTextField();
container.add(textField);
/* also store textField somewhere else. */
}
Andere Tipps
Probieren Sie so etwas aus:
List<JTextField> nums = new ArrayList<JTextField>();
JTextField tempField;
for (int i = 0; i < 10; i++) {
tempField = new JTextField();
jPanel1.add(tempField); // Assuming all JTextFields are on a JPanel
nums.add(tempField);
}
Vergessen Sie nicht, einen richtigen Layout -Manager für den Container festzulegen. (Jpanel1 In diesem Fall)
Ich würde eine Liste erstellen, um die Textfelder zu speichern, und dann können Sie sie nach Index zurückerhalten. Dann können Sie so viele Felder haben, wie Sie brauchen.
List fields = new ArrayList();
// Create as many elements as you need
for (int i = 0; i < numberOfElements; i++){
JTextField field = new JTextField();
// Add the fields to some panel so they are shown in the screen.
// I assume that the component is called parent panel
parentPanel.add(field);
// Store the component in the list so you can retrieve it later
fields.add(field);
}
// ...
// When you want to retrieve a particular one:
JTextField field = (JTextField)fields.get( indexToRetrieve );