Java ArrayLists dans JList
OK donc je vais faire une petite partie de mon inventaire. J'ai eu PLUS de bas. Je suis en train d'ajouter des éléments de chaîne à une liste de tableaux puis ajouter que, dans une JList. Cependant, j'obtiens cette erreur quand je compile:
C:\Users\Dan\Documents\DanJavaGen\inventory.java:30: cannot find symbol
symbol : constructor JList(java.util.ArrayList<java.lang.String>)
location: class javax.swing.JList
list = new JList(arr);
C'est probablement une erreur de débutant que je suis ... :/
Code:
import java.applet.Applet;
import java.awt.*;
import javax.swing.*;
import javax.swing.JList;
import java.awt.event.*;
import java.util.ArrayList;
import java.io.*;
import java.util.*;
public class inventory extends JApplet implements MouseListener {
public static String newline;
public static JList list;
int gold = 123;
public void init() {
ArrayList<String> arr = new ArrayList<String>();
arr.add("Hatchet");
arr.add("Sword");
arr.add("Shield");
arr.add(gold + " Gold");
System.out.println("You have " + arr.size() + " items in your inventory.");
showInventory(arr);
list = new JList(arr);
add(list);
list.addMouseListener(this);
list.setVisible(true);
}
public static void showInventory (ArrayList<String> theList) {
for (int i = 0; i < theList.size(); i++) {
System.out.println(theList.get(i));
}
}
public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) {
Object index = list.getSelectedValue();
System.out.println("You have selected: " + index);
}
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
public void mouseClicked(MouseEvent e) { }
public void paint(Graphics g) {
}
}
source d'informationauteur nn2
Vous devez vous connecter pour publier un commentaire.
JList fournit un constructeur JList(Object[]) lequel vous pouvez appeler après le déballage de votre ArrayList<String> à l'aide de toArray():
Essayez ceci:
J'ai eu du mal avec le
toArray()
méthode causant des exceptions, alors j'ai construit rapidement une méthode générique pour convertir. Peut-être que quelqu'un va trouver utile. Je sais que c'est un vieux post, mais je parie que c'est encore perçu de temps à autre. Voici la méthode:Il suffit de créer le tableau avant de vous le transmettre, comme
Puis il suffit d'appeler à partir de votre code
J'ai eu du mal avec toArray() et JList pour mon projet. Fait quelques recherches et essayé quelques petites choses et trouvé quelque chose qui fonctionne. Espérons que cela aide tout le monde:
Constructeur Résumé
JList()
Construit unJList
avec un vide, en lecture seule, modèle.JList(ListModel dataModel)
Construit unJList
qui affiche les éléments de la spécifiés, non nulles, modèle.JList(Object[] listData)
Construit unJList
qui affiche les éléments dans le tableau spécifié.JList(Vector<?> listData)
Construit unJList
qui affiche les éléments du Vecteur spécifié.J'ai simplement mis en œuvre le ListModel interface: