2009-10-02 4 views
0

Je voudrais montrer de plus en plus un JPopupMenu afin qu'il semble "glisser". Ce n'est pas pour les éléments de menu, où l'animation n'a pas beaucoup de sens. Au lieu de cela, il s'agit d'un panneau avec des composants réels (oh oui, vous pouvez ajouter n'importe quel composant JComponent à JPopupMenu). JPopupMenu a de nombreux champs et méthodes privés, ce qui le rend difficile à étendre. De plus, je ne suis pas familier avec l'animation Swing pour commencer.Comment animer l'affichage de JPopupMenu?

Merci beaucoup pour votre aide!

+0

J'ai essayé de régler la hauteur de JPopupMenu dans une minuterie mais la fenêtre contextuelle ne s'affiche pas correctement. La réponse de broschb m'a donné l'idée de définir la hauteur du JPanel que j'ai mis dans la popup, qui fonctionne. –

Répondre

0

Je viens de le faire au cours des dernières semaines. Je suis allé une approche légèrement différente, et attrapé le layeredPane, puis ajouté un JPanel personnalisé au volet en couches. Dans le jpanel, j'ai remplacé la méthode getHeight, et la hauteur commençait à 0. Je pouvais ensuite ajouter les composants que je voulais à mon jpanel. Dans le jpanel j'avais une méthode pour démarrer l'animation, cela a commencé une minuterie, et dans le minuteur tout ce que j'ai fait était d'augmenter la hauteur de mon jpoule à une taille maximale.

C'est tout. Cela fonctionne très bien dans mon application, je l'ai lié pour étendre sous un bouton J sur la presse, et s'effondrer sur une autre presse.

Encore une chose, vous voudrez ajouter un mouseAdapther au jpanel afin que les événements ne passent pas par les composants sous la couche.

+0

Merci! Je veux toujours mettre le JPanel dans JPopupMenu afin que Swing gère la popup correctement. Donc, je prends votre idée pour régler la hauteur de JPanel et cela fonctionne. –