La création d'une Observable Liste/Collection
Je suis en train de créer un ChoiceBox
en JavaFX 8, ce qui nécessite une Collection
. Je ne peux pas comprendre comment créer un Collection
si... Si j'essaie:
ObservableList<String> list = new ObservableList<String>();
Je reçois un message d'erreur indiquant que je ne peux pas instancier ObservableList
parce qu'elle est abstraite. Compréhensible. Si je regarde la doc pour ObservableList
je peux voir que SortedList implements ObservableList
, mais je ne peux pas faire:
ObservableList<String> list = new SortedList<String>();
Car il n'y a pas applicable constructeur. Apparemment, j'ai besoin d'avoir un ObservableList
de passer à la SortedList
, ce qui est étrange parce que je ne peux pas créer un ObservableList
.
constructor SortedList.SortedList(ObservableList<? extends String>,Comparator<? super String>) is not applicable
(actual and formal argument lists differ in length)
constructor SortedList.SortedList(ObservableList<? extends String>) is not applicable
(actual and formal argument lists differ in length)
Je ne suis pas sûr de savoir comment déchiffrer que. Si j'essaie
ObservableList<String> list = new SortedList<SortedList<String>>();
//or
ObservableList<String> list = new SortedList<ObservableList<String>>();
en désespoir de cause, j'ai un encore plus alambiqué erreur.
SortedList<String> list = new SortedList<String>();
ne fonctionne pas non plus. D'une certaine manière cela fonctionne (mais apparemment utilise un fonctionnement sécuritaire de l'appareil):
ChoiceBox box = new ChoiceBox(FXCollections.observableArrayList("Asparagus", "Beans", "Broccoli", "Cabbage" , "Carrot", "Celery", "Cucumber", "Leek", "Mushroom" , "Pepper", "Radish", "Shallot", "Spinach", "Swede" , "Turnip"));
J'ai donc essayé:
ObservableList<string> list = new FXCollections.observableArrayList("Asparagus", "Beans", "Broccoli", "Cabbage" , "Carrot", "Celery", "Cucumber", "Leek", "Mushroom" , "Pepper", "Radish", "Shallot", "Spinach", "Swede" , "Turnip");
Mais pas de chance il soit. Je suis super confus, en faisant de même thigns plus et de plus dans une boucle infinie d'essayer de le comprendre. La documentation que j'ai trouvé montre des exemples qui ne vous aide pas, ou pas d'exemples. La documentation officielle est inutile de trop:
Par exemple, supposons que vous avez une Collection c, ce qui peut
être une Liste, une série, ou un autre type de Collection. Cet idiome crée un
new ArrayList (une mise en œuvre de la Liste de l'interface), initialement
contenant tous les éléments de c.List<String> list = new ArrayList<String>(c);
Afin de créer ArrayList
, une mise en œuvre de List
, j'ai besoin d'avoir un List
. la raison pour laquelle je suis allé à la documentation en premier lieu pour apprendre à faire de ce qu'ils sont en supposant que j'ai. Je suis perdu. De l'aide?
Vous devez vous connecter pour publier un commentaire.
Utiliser les méthodes de fabrique dans
FXCollections
:Le fonctionnement sécuritaire de l'appareil dans votre boîte de choix constructeur est parce que vous n'avez pas spécifié le type de la boîte de choix:
et l'erreur de
SortedList
est parce qu'il n'y a pas de constructeur prenant pas d'argument. (Encore une fois, reportez-vous à la la documentation javadoc.) Il y a deux constructeurs: le plus simple, on prend une référence à unObservableList
(la liste pour laquelle la liste triée offrira un affichage trié). Si vous besoin de quelque chose commeou