affichage d'une liste dans une fenêtre

affichage d'une liste dans une fenêtre - Java - Programmation

Marsh Posté le 05-01-2013 à 16:11:26    

salut! je dois faire un jeux de cartes et je veux afficher deux listes dont ses composantes appartiennes à une classe (cartes) qui étend Arraylist<Personnage>. Cependant aucunes listes ne s'affichent et je ne comprends pas pourquoi :(  

Code :
  1. class Fenetre extends JFrame{
  2.    public Fenetre(Cartes cartes){
  3.       Container pan = getContentPane();
  4.       JPanel haut, bas;
  5.       final JButton combat = new JButton("Combat" );
  6.       JButton soigne = new JButton("Soigne" );
  7.       // Les listes avec leurs elements :
  8.      
  9.       final JList list1 = new JList(cartes.toArray());
  10.       final JList list2 = new JList(cartes.toArray());
  11.       final JTextArea ta1 = new JTextArea();
  12.       final JTextArea ta2 = new JTextArea();
  13.       // Les listes des personnages pouvant etre selectionnes
  14.        list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  15.       list2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  16.      
  17.       list1.addListSelectionListener(new ListSelectionListener() {
  18.        public void valueChanged(ListSelectionEvent e){
  19.         ta1.setText(((Personnage)list1.getSelectedValue()).printAll());
  20.        }
  21.       } );
  22.      
  23.       list2.addListSelectionListener(new ListSelectionListener() {
  24.          public void valueChanged(ListSelectionEvent e){
  25.           ta2.setText(((Personnage)list2.getSelectedValue()).printAll());
  26.          }
  27.         } );
  28.      
  29.      
  30.       // Affichage des elements graphiques
  31.       setBounds(50,50,500,200);
  32.       pan.setLayout(new GridLayout(2,1));
  33.       haut = new JPanel(new FlowLayout());
  34.       bas = new JPanel(new FlowLayout());
  35.       haut.add(list1);
  36.       haut.add(combat);
  37.       haut.add(soigne);
  38.       haut.add(list2);
  39.       bas.add(ta1);
  40.       bas.add(ta2);
  41.       pan.add(haut);
  42.       pan.add(bas);
  43.       setVisible(true);
  44.    }
  45. }
  46. // Les cartes
  47. class Cartes extends ArrayList<Personnage>{
  48.    static public Random rnd;
  49.    static Guerrier g1;
  50.    static Guerrier g2;
  51.    static Soigneur s1;
  52.    static Soigneur s2;
  53.    static Paladin p;
  54.  
  55.    public Cartes(){
  56.      g1 = new Guerrier(rnd.nextInt(20), "Escrimus" );
  57.      g2 = new Guerrier(rnd.nextInt(20), "Archeus" );
  58.      s1 = new Soigneur(rnd.nextInt(25), "Medicus" );
  59.      s2 = new Soigneur(rnd.nextInt(25), "Infirmix" );
  60.      p = new Paladin ( rnd.nextInt(25), "Paladus", rnd.nextInt(20));
  61.      }
  62. }

Reply

Marsh Posté le 05-01-2013 à 16:11:26   

Reply

Marsh Posté le 05-01-2013 à 21:08:36    

Si tu veux affiché le contenu de l'ArrayList, t'as la méthode to_string() directement dans ArrayList.


---------------
"Coucou petit perruche, c'est moi l'élan derrière toi !"
Reply

Marsh Posté le 05-01-2013 à 21:17:34    

est ce que je pourrais l'utiliser sachant que c'est pas directement le contenu d'une ArrayList mais le contenu d'un objet qui instancie la classe carte.
Je pense que le problème vient de la construction des Jlist même s'il n'y a pas d'erreur à la compilation cela n'affiche rien

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed