Comment faire un JMenu avoir Bouton de comportement dans un JMenuBar
J'essayais de faire un JMenu se comporter comme un JButton, mais je vais avoir quelques problèmes et j'espère que quelqu'un ici peut vous aider!
J'ai ajouté un MenuListener à la JMenu élément à cela, mais je ne peux pas obtenir le menu contextuel/mise au point de quitter pour me permettre de bien cliquez sur le JMenu fois répétés pour déclencher cette fonction et j'espérais que quelqu'un pourrait me dire ce que je fais mal. Merci.
public void menuSelected(MenuEvent e)
{
... //do stuff here code
JMenu source = (JMenu)e.getSource();
source.setSelected(false);
source.setPopupMenuVisible(false);
}
Je ne suis pas sûr de comprendre ce que vous essayez d'accomplir ici. Pourquoi voulez-vous le JMenu à agir comme un bouton au lieu d'utiliser simplement JMenuItem?
Peut-être fournir plus de le code source que vous travaillez avec, de sorte que nous pouvons voir, plus généralement, de ce que vous essayez d'accomplir.
Peut-être fournir plus de le code source que vous travaillez avec, de sorte que nous pouvons voir, plus généralement, de ce que vous essayez d'accomplir.
OriginalL'auteur Kurru | 2010-03-16
Vous devez vous connecter pour publier un commentaire.
Pas complètement sûr de ce que vous demandez...
Mais
JMenuBar
hérite deContainer
- si vous préférez ajouter uneJButton
qu'unJMenu
vous pouvez simplement appeler -mais cela fonctionne sur MAC OS X ?
le bouton est différent d'un JMenu.
OriginalL'auteur Nate
Cet exemple de code s'exécute dans eclipse, de Nouveau préoccupé par la façon dont vous l'utilisez?
OriginalL'auteur Kannan Ekanath
Je sais que c'est un vieux thread, mais je pense que je pourrais avoir une solution. J'ai tombé en face de ce problème dans une de mes applications, et a trouvé une solution de contournement. Essayez d'utiliser un JMenuItem au lieu d'un JMenu. Il aura le même L&F, comme un JMenu lorsque vous le branchez à un JMenuBar. La seule chose que vous avez à faire est de définir la taille de votre nouveau "bouton", comme votre Gestionnaire de Présentation (même si vous n'avez pas défini un) va redimensionner ce composant en fonction de ses propres règles:
http://www.javaworld.com/javaworld/jw-09-2000/jw-0922-javatraps.html
La façon de le faire est de trouver sous ce lien (si vous vous sentez mal à l'aise en cliquant sur le lien google pour "setsize ne marche pas" - ce sera dans le top dix des résultats). Si vous ne définissez pas la taille correctement, votre nouveau "bouton" vont se remplir l'espace restant de votre JMenuBar.
essayez ce code:
setActionCommand() méthode va définir une action de commande, de sorte que lorsque vous cliquez sur le nouveau bouton "" ce sera l'action de la commande passée par l'événement d'action argument de l'action réalisée méthode, de sorte que vous pouvez facilement identifier:
Espérons que cette aide!
OriginalL'auteur noResets
Il est très difficile de déterminer ce que vous essayez de faire ici. Mais je ne pense pas que vous êtes correctement à l'aide de JMenu.
Un JMenu est l'objet qui représente un Menu. Elle est séparée de la barre de menu (JMenuBar) et de l'élément de menu (JMenuItem). Un JMenuBar contient généralement plusieurs JMenus (Fichier, Édition, etc) qui contiennent à leur tour plusieurs JMenuItems (Nouveau, Ouvrir, Fermer). Le JMenuItems sont ce qui est cliqué et des "actes comme un bouton" dans le menu.
Pour obtenir un élément de menu à agir comme un bouton, il suffit de l'ajouter au menu. Par exemple:
Si vous essayez de créer un menu pop-up, vous devez utiliser JPopupMenu au lieu de JMenu, et vous n'avez pas besoin d'un JMenuBar. Voici la Java des tutoriels sur les menus: http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html
Et voici la Java docs pour JMenuBar, JMenu, JPopupMenu, et JMenuItem.
Si vous modifiez votre question et de donner une explication plus détaillée de ce que vous faites, je pourrais être en mesure de donner plus d'aide spécifique.
OriginalL'auteur Daniel Bingham
Ok j'ai décidé d'étudier cette question un peu plus et ce qui suit est la reslut et semble agir comme un JButton, mais apparaît comme un jmenu sur un jmenubar. Le Code ci-dessous. (note juste l'ajout d'un actionListener à un JMenu na pas travailler à la droite qui est la raison pour laquelle le mouselistener. Vous ajoutez un actionListener à la menubutton comme un bouton normal et aussi longtemps que vous n'avez pas à ajouter tout menuitems à la menubutton (qui, techniquement, vous le pouvaient), il apparaît comme un JMenu sur le JMenuBar, mais se comporte comme un bouton.
OriginalL'auteur Bastiat