2010-07-17 6 views
1

Sur chaque JList j'ai fait ... J'ai dû cliquer dessus avant que les JList apparaîtrait. C'était comme ... invisible mais toujours là ... JUSQU'À ce que je l'ai cliqué ...Java JList ne figurant pas

J'ai essayé list.setVisible(true) et tel ... mais pas de chance. :\ Aidez-moi? Oui, j'ai essayé le Javadoc, Google, et SO Search. > _ < Je n'ai jamais rencontré un problème comme celui-ci.

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.toArray()); 

     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) { 

    } 
} 

Répondre

2

Ou si vous voulez remplacer la méthode de peinture, le remplacer par:

public void paint(Graphics g) { 
    super.paint(g); 
    // your code 
} 
1

Vous devez effacer cette partie de votre code:

public void paint(Graphics g) { 

} 

votre problème était Basicly que vous écrasez la méthode de peinture avec une méthode vide. C'est pourquoi votre liste ne s'affichait pas correctement au démarrage.

1

Vous pouvez ajouter this.setVisible(true); ligne à la fin de la méthode init() comme

list.addMouseListener(this); 

list.setVisible(true); 
this.setVisible(true); 
Questions connexes