Выпадающее меню без JMenuBar

Есть ли способ реализовать раскрывающуюся кнопку в Java, но без реализации JMenuBar? Мне нужно импортировать кнопку с всплывающим меню. Как я могу это сделать?


person user506246    schedule 28.11.2012    source источник
comment
Почему бы не нажать кнопку focusGained / button и не показать JPopMenu под кнопкой?   -  person David Kroukamp    schedule 28.11.2012
comment
@DavidKroukamp, ​​не знаю, почему ты не ответил на этот вопрос...   -  person ryvantage    schedule 04.07.2013


Ответы (2)


Как заявил @DavidKroukamp, ​​JPopupMenu должен помочь.

person ryvantage    schedule 03.07.2013

введите здесь описание изображения

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JPopupMenu;
    import javax.swing.JToggleButton;
    import javax.swing.event.PopupMenuEvent;
    import javax.swing.event.PopupMenuListener;

    public class MenuButton extends JToggleButton {

        JPopupMenu popup;

        public MenuButton(String name, JPopupMenu menu) {
            super(name);
            this.popup = menu;
            addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent ev) {
                    JToggleButton b = MenuButton.this;
                    if (b.isSelected()) {
                        popup.show(b, 0, b.getBounds().height);
                    } else {
                        popup.setVisible(false);
                    }
                }
            });
            popup.addPopupMenuListener(new PopupMenuListener() {
                @Override
                public void popupMenuWillBecomeVisible(PopupMenuEvent e) {}
                @Override
                public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
                    MenuButton.this.setSelected(false);
                }
                @Override
                public void popupMenuCanceled(PopupMenuEvent e) {}
            });
        }
    }
person luca    schedule 28.04.2015