Détection d'un componentqui passe a setVisible(false) [Java] - Programmation
Marsh Posté le 29-06-2001 à 10:35:50
rectification,
après 20 seconde de recher dans la doc api j'ai trouvé ce qui t'avais besoin : isShowing()
public boolean isShowing()
Determine if the object is showing. This is determined by checking the visibility of the object and ancestors of the object. Note: this will return true even if the object is obscured by another (for example, it happens to be underneath a menu that was pulled down).
http://java.sun.com/j2se/1.3/docs/api/index.html
Marsh Posté le 29-06-2001 à 11:17:01
Ouais merci.
Mais c'est pa vraiment ca que je veux, je veux que ce soit le composant lui-meme qui me dise quand il est plus visible.
je veux a avoir a aller le chercher moi-meme.
c pour ca que j'ai pensé a l'interface ComponentListener
Marsh Posté le 29-06-2001 à 11:50:56
pour ceux qui veulent voila la réponse
c pas un ComponentListener qu'il faut mais PopupMenuListener !!!
2 heures de perdus pour des conneries!!
pbl réglé en 4 min ...
Marsh Posté le 29-06-2001 à 10:17:55
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));