Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  affichage d'une liste dans une fenêtre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

affichage d'une liste dans une fenêtre

n°2169981
meenah
Posté le 05-01-2013 à 16:05:40  profilanswer
 

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.      // g2.addListSelectionListener(new ListSelectionListener() {
  30.        //  public void valueChanged(ListSelectionEvent e){
  31.         //  ta1.setText(g2.printAll());  
  32.         // }  
  33.         //} );
  34.      
  35.       // Cliquer sur le bouton combat permet de declencher un combat entre les
  36.       // personnages selectionnes
  37.       // A COMPLETER Pour gerer les exceptions
  38.       combat.addActionListener(new ActionListener(){
  39.          public void actionPerformed(ActionEvent e){
  40.             Personnage p1 = (Personnage)list1.getSelectedValue();
  41.             Personnage p2 = (Personnage)list2.getSelectedValue();
  42.             //p1.combat(p2); check si p1 p2 sont des guerriers ou paladins  
  43.             ta1.setText(p1.printAll());
  44.             ta2.setText(p2.printAll());
  45.             JOptionPane.showMessageDialog(Fenetre.this,p1.getMessage(), "information", JOptionPane.INFORMATION_MESSAGE);
  46.          }
  47.       });
  48.    
  49.       // Cliquer sur le bouton soigne permet au soigneur selectionne de soigner
  50.       // un personnage selectionne
  51.       // A COMPLETER pour gerer les exceptions
  52.       soigne.addActionListener(new ActionListener(){
  53.          public void actionPerformed(ActionEvent e){
  54.             Personnage p1 = (Personnage)list1.getSelectedValue();
  55.             Personnage p2 = (Personnage)list2.getSelectedValue();
  56.             //p1.soigne(p2); il faut vérifier que p1 est un soigneur
  57.             ta1.setText(p1.printAll());
  58.             ta2.setText(p2.printAll());
  59.             JOptionPane.showMessageDialog(Fenetre.this,p1.getMessage(), "information", JOptionPane.INFORMATION_MESSAGE);
  60.          }
  61.       });
  62.       // Fermer la fenetre
  63.       addWindowListener(new WindowAdapter(){
  64.          public void windowClosing(WindowEvent e){
  65.             System.exit(0);
  66.          }
  67.       });
  68.      
  69.       // Affichage des elements graphiques
  70.       setBounds(50,50,500,200);
  71.       pan.setLayout(new GridLayout(2,1));
  72.       haut = new JPanel(new FlowLayout());
  73.       bas = new JPanel(new FlowLayout());
  74.       haut.add(list1);
  75.       haut.add(combat);
  76.       haut.add(soigne);
  77.       haut.add(list2);
  78.       bas.add(ta1);
  79.       bas.add(ta2);
  80.       pan.add(haut);
  81.       pan.add(bas);
  82.       setVisible(true);
  83.    }
  84. }
  85. // Les cartes
  86. class Cartes extends ArrayList<Personnage>{
  87.    static public Random rnd;
  88.    static Guerrier g1;
  89.    static Guerrier g2;
  90.    static Soigneur s1;
  91.    static Soigneur s2;
  92.    static Paladin p;
  93.  
  94.    public Cartes(){
  95.      g1 = new Guerrier(rnd.nextInt(20), "Escrimus" );
  96.      g2 = new Guerrier(rnd.nextInt(20), "Archeus" );
  97.      s1 = new Soigneur(rnd.nextInt(25), "Medicus" );
  98.      s2 = new Soigneur(rnd.nextInt(25), "Infirmix" );
  99.      p = new Paladin ( rnd.nextInt(25), "Paladus", rnd.nextInt(20));
  100.      }
  101. }

mood
Publicité
Posté le 05-01-2013 à 16:05:40  profilanswer
 

n°2170158
Benh_31
Posté le 07-01-2013 à 23:03:33  profilanswer
 

je te dis peut être une bêtise mais il faut pas faire appliquer la méthode
 
list1.setListData (cartes.toArray());
list2.setListData (cartes.toArray());
 
une fois que t'as mis tes éléments dans ton tableau, pour mettre à jour l'affichage de la liste ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  affichage d'une liste dans une fenêtre

 

Sujets relatifs
Pb affichage de jimdo sous IETri d'une liste doublement chainée
Modification d'un site PHP, problème affichage page (débutant)Problème d'affichage avec un MVC [résolu]
[Need HELP !] Garder la dernière version dans une liste[Résolu] Lourdeur d'affichage bouton Facebook
Problème d'affichage IE/Opera[WINDEV] Planning affichage des toutes les ressources
[VBA] Créer une liste depuis une celluleAffichage dans le console d'eclipse
Plus de sujets relatifs à : affichage d'une liste dans une fenêtre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR