java tableau de arraylists
J'ai quatre colonnes de boutons dans mon programme. Les boutons déplacer entre les colonnes lors de l'affectation de nouveaux. Au lieu de déclarer 4 arraylists pour stocker les boutons, est-il un moyen de créer 1 tableau de arraylists donc je peux simplement itterate à travers le tableau?
J'ai essayé List<JButton>[] lists = new ArrayList<JButton>[5];
Mais qui ne fonctionne pas. Ce qui me manque?
EDIT:
for(int i = 0; i < 5; i++){
if(choiceList.getSelectedIndex() == i){
if(btnPersons[nameList.getSelectedIndex()].getX() == column[i]){
JOptionPane.showMessageDialog(null, "Error - Name already present in the column.","", 1);
}else{
for(int j = 0; j < 5; j++){
if(lists[j].get(i) != null){
lists[j].remove(btnPersons[nameList.getSelectedIndex()]);
}
}
lists[i].add(btnPersons[nameList.getSelectedIndex()]);
lists[i].get(i).setBounds(column[i], ROWS[i], 125, 20);
//reloadLocations();
}
}
}
C'est mon code actuellement.Une fois une nouvelle colonne est sélectionnée, il vérifie pour voir qui listthe bouton a été dans et le supprime, ajoute à la nouvelle liste. Mais mon problème est que l'utilisation de listes[je] ne fonctionne plus. Idk comment correctement en boucle dans ma liste de arraylists à l'aide de cette déclaration:
List<ArrayList<JButton>> lists = new ArrayList<ArrayList<JButton>>();
List[] lists = new ArrayList[5];
compile et fonctionne très bien pour moi, même si je préfère utiliser des génériques et serait de faire un tableau de la Liste[5]. Peut-être l'erreur est ailleurs. Ce qui était incorrect avec votre code? Quels messages d'erreur voyez-vous?Veuillez décrire de quelle façon ça ne marchera pas. Il devrait fonctionner.
Peut-être que vous pourriez nous dire ce qui est "ne fonctionne pas"? Ce post semble être intéressant et pourrait devenir un grand si vous donner plus d'informations.
Eclipse souligne le "new ArrayList<JButton>[5];" l'article et dit: "Impossible de créer un générique de tableau de ArrayList<JButton>"
Lorsque vous n'êtes pas autorisé à
new
un generic array, vous êtes autorisés à le faire: ArrayList<JButton>[] lists = (ArrayList<JButton>[]) Array.newInstance(ArrayList.class, 5);
OriginalL'auteur mbreen | 2011-08-21
Vous devez vous connecter pour publier un commentaire.
Vous devez garder une liste de listes de JButton objets:
essayez
for (JButton button : lists.get(i)) { // ...}
Toujours pas de chance. Je ne pense pas que je suis tout à fait comprendre, je suis désolé.
Si vous souhaitez faire une boucle/itération de la liste des listes de voir le code dans la réponse. Si vous souhaitez faire une boucle/itération un speicla liste, par exemple, la liste de no. 1 ou 2 voir le commentaire. Je ne comprends pas exactement ce que vous voulez faire.
OriginalL'auteur timbooo
Donner un exemple de ce qui a fonctionné pour moi /parlé ci-dessus.
OriginalL'auteur Parasou
Vous ne pouvez pas créer des tableaux à partir de classes avec des paramètres génériques.
Vous aurez veulent soit faire une liste d'une liste, ou renoncer à des paramètres génériques.
OriginalL'auteur Jeremy
Vous n'êtes pas en mesure d'appeler le nouvel opérateur pour un objet générique, car au moment de l'exécution le type a été effacé.
OriginalL'auteur DwB