2017-08-03 2 views
0

Je dois ajouter plusieurs centaines de champs de texte à une interface graphique."Erreur: (1, 1) java: trop de paramètres" après l'ajout de champs de texte javafx

Pour que j'ajouter les javafx.scene.control.TextFields à quelques volets différents:

TextField txt1 = new TextField(); 
TextField txt2 = new TextField(); 
TxtPane.getChildren().addAll(txt1, txt2); 

Mais après un certain nombre de Zones de texte, IntelliJ me donne l'erreur ci-dessus, est-il une solution facile ou un "moyen officiel" de le faire?

Merci.

+0

où est cette erreur? S'il s'agit d'une exception, veuillez fournir une trace complète de la pile. Si c'est une erreur IDE, veuillez fournir une capture d'écran. Notez également que 'addAll()' peut prendre 254 paramètres max par spécification Java si vous les ajoutez tous ensemble. –

+0

Pourquoi créez-vous autant de «TextField» un par un? [DRY!] (Https://en.wikipedia.org/wiki/Don't_repeat_yourself) Il y a très probablement un moyen de réduire le nombre d'expressions de création de champs de texte dans votre code et de ne pas ajouter un grand nombre de champs en utilisant un seul appel à 'addAll' ... – fabian

Répondre

0

Merci à vous deux pour l'entrée. @Sergey non il n'y avait pas de pile, l'erreur vient d'apparaître dans la zone inférieure. J'ai utilisé différents volets pour ajouter le TextField, donc je ne comprends pas pourquoi j'ai eu l'erreur.

@fabian: Vous m'avez amené sur le bon chemin. J'utilise un tableau TexField maintenant pour créer de la TextField et les ajouter avec .add():

TextField[] someTextFields = new TextField[20]; 
    for (int i = 0; i < 20; i++) { 
     TextField field = new TextField(); 
     someTextFields[i] = field; 
    } 
    for (int i = 0; i < 20; i++) { 
     somePane.getChildren().add(someTextFields[i]); 
    } 

Il travaille pour moi maintenant merci encore, puisque je ne peux pas voter pour fabiens réponse que je vais marquer mon propre si ce est ok?