2009-12-03 4 views
2

Comment puis-je ajouter une entrée par défaut en haut d'un JComboBox tel que Ajouter un nouvel élément afin de permettre à un utilisateur de cliquer sur cette entrée et d'obtenir un dialogue lui permettant créer une nouvelle entrée? Dois-je essayer d'utiliser un moteur de rendu personnalisé ou quelle est la meilleure approche? J'apprécie l'aide de qui que ce soit à ce sujet.Comment ajouter un élément par défaut comme Ajouter un nouvel élément au-dessus de JComboBox

Répondre

1

1) Ajouter une entrée en haut de la source peuplant le combo

2) Ajouter un écouteur à la combobox, le lancement d'un dialogue externe lorsque selectedIndex = 0

1

Je pense que ce serait mieux Conception de l'interface utilisateur pour avoir un bouton dédié pour ajouter de nouveaux éléments à votre modèle. Considérez ceci: Si vous utilisez le JComboBox pour contrôler également l'ajout, l'étendez-vous également pour contrôler le retrait? Que se passe-t-il après la création de votre première entrée? Cette entrée par défaut disparaît-elle? Que se passe-t-il lorsque vous avez BEAUCOUP d'entrées?

En outre, j'ai trouvé qu'il est plus facile de contrôler les autorisations en ayant des boutons d'ajout/suppression dédiés.

0

Vous pouvez faire en sorte que le premier élément de la zone de liste déroulante soit une chaîne vide et indiquer des instructions indiquant à l'utilisateur qu'il peut saisir son propre texte ou modifier une entrée.

Si la zone de liste modifiable est marquée comme modifiable, un champ de saisie de texte s'affiche à chaque fois qu'un utilisateur tape dans la zone de liste déroulante.

comme ceci:

Vector<String> options = new Vector<String>(); 
    options.add(""); 
    options.add("blue"); 
    options.add("red"); 
... 
JComboBox result = new JComboBox(options); 
result.setEditable(true); 

addititonally, si le combobox est dans une table, vous pouvez utiliser un autre combobox pour le moteur de rendu et l'éditeur; comme dans: si la valeur de cette cellule est nulle ou la chaîne vide, alors vous pouvez faire en sorte que la combobox de rendu ait une seule option qui dit "choisir ou entrer une valeur" ou "sélectionner une valeur" et ensuite avoir l'éditeur liste déroulante que j'ai définie ci-dessus.

Questions connexes