J'ai une Gui avec des composants qu'on peut déplacer sur une fenetre(mousedragged) et quand on clique droit sur un composant j'ai un jpopupmenu qui apparait et qui contient deux boutons cliquables.
je voudrais savoir quand le popup disparait. Quand je clique sur un des deux boutons c ok, mais quand je clique ailleurs, ca marche pas, alors que je lui ai pourtant assigné un componentListener(hidden, shown..)
voila une partie du code:
j'espere que c'est compréhensible
public class ListenerComponent implements ListenerMain, ActionListener, java.awt.event.ComponentListener
{
/* the pointclick when dragg */
private Point clickPoint;
private JPopupMenu jpm;
private JFrame frame;
private PropertyChangeSupport pcs;
private java.awt.Font fontMenu;
public ListenerComponent(JFrame frame)
{
this.frame = frame;
pcs = new PropertyChangeSupport(this);
fontMenu = new java.awt.Font("Arial",java.awt.Font.PLAIN, 11);
jpm = new JPopupMenu();
}
public void componentHidden(java.awt.event.ComponentEvent e)
{
System.out.println("hidden" );
System.out.println(e.getSource());
pcs.firePropertyChange(Component.PROPERTY_DISPLAYED, null,java.awt.Color.lightGray);
}
public void componentMoved(java.awt.event.ComponentEvent e){ System.out.println(e.getSource());
System.out.println("moved" ); }
public void componentResized(java.awt.event.ComponentEvent e){ System.out.println(e.getSource());
System.out.println("resized" ); }
public void componentShown(java.awt.event.ComponentEvent e){ System.out.println(e.getSource());
System.out.println("shown" );}
public void mouseClicked(MouseEvent e)
{
if (SwingUtilities.isLeftMouseButton(e))
{
Component component = (Component) e.getSource();
displayProperties(component);
}
if (SwingUtilities.isRightMouseButton(e))
{
addPropertyChangeListener((Component) e.getSource());
jpm.addComponentListener(this);
pcs.firePropertyChange(Component.PROPERTY_DISPLAYED,
null, new java.awt.Color(192,192,250));