JPopupMenu issue d'une HashMap
Cotton
-
Cotton -
Cotton -
Bonjour,
J'aimerai créer un menu type JPopupMenu avec, comme contenu, des JMenuItem. Jusque là, rien de compliquer.
Mais la particularité c'est que je veux créer des JMenuItem à partir des éléments d'une HashMap comportant des objet Item.
La compilation s'effectue sans erreur. Néanmoins, lorsque je clique sur mon bouton vButtonBack, le menu ne s'affiche pas.
Je ne vois pas d'où vient l'erreur... Pouvez vous
J'aimerai créer un menu type JPopupMenu avec, comme contenu, des JMenuItem. Jusque là, rien de compliquer.
Mais la particularité c'est que je veux créer des JMenuItem à partir des éléments d'une HashMap comportant des objet Item.
JPopupMenu vPopupMenu = new JPopupMenu();
vButtonBack.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Set<String> keys = (aEngine.getPlayer().getCurrentRoom().getItemsList()).keySet();
for(String vItem : keys)
{
vPopupMenu.add(new JMenuItem(vItem));
}
vPopupMenu.show(vButtonBack, vButtonBack.getBounds().x + 35, vButtonBack.getBounds().y + 35);
}
});
La compilation s'effectue sans erreur. Néanmoins, lorsque je clique sur mon bouton vButtonBack, le menu ne s'affiche pas.
Je ne vois pas d'où vient l'erreur... Pouvez vous
A voir également:
- JPopupMenu issue d'une HashMap
- Cloudflare issue - Guide
- Kb5077181 issue - Guide
- Kb5077241 issue - Guide
- Kb5078127 issue - Guide
- Kb5073455 issue - Guide
1 réponse
Bon, pour ce point, j'ai réussi.
Mais maintenant je veux qu'a chaque fois que je clique sur un des JMenuItem, cela exécute une méthode.
vButtonTake.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JPopupMenu vPopupMenu = new JPopupMenu();
Set<String> keys = (aEngine.getPlayer().getCurrentRoom().getItemsList()).keySet();
if((aEngine.getPlayer().getCurrentRoom().getItemsList()).isEmpty())
{
vPopupMenu.add(new JMenuItem("Cette pièce ne possède pas d'objet..."));
vPopupMenu.show(vButtonTake, vButtonTake.getBounds().x + 35, vButtonTake.getBounds().y + 35);
}
else
{
for(String vItem : keys)
{
vPopupMenu.add(new JMenuItem(vItem));
}
vPopupMenu.show(vButtonTake, vButtonTake.getBounds().x + 35, vButtonTake.getBounds().y + 35);
}
}
});
Mais maintenant je veux qu'a chaque fois que je clique sur un des JMenuItem, cela exécute une méthode.