JPopupMenu не работает - PullRequest
       4

JPopupMenu не работает

0 голосов
/ 09 марта 2011

Я написал простую программу, чтобы понять, как работает JPopupMenu. Но что-то не так с моим кодом, всплывающее меню не отображается правильно. Пожалуйста, может кто-нибудь сказать мне причину?

public class PopUpMenu extends JFrame implements ActionListener {

JPanel panel;
JPopupMenu popMenu;
JMenuItem cut;
JMenuItem copy;

public PopUpMenu() {

    setVisible(true);
    setSize(300, 300);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    panel = new JPanel();
    popMenu = new JPopupMenu();
    cut = new JMenuItem();
    popMenu.add(cut);
    copy = new JMenuItem();
    popMenu.add(copy);

    add(panel);
    panel.setComponentPopupMenu(popMenu);

    addMouseListener(new MouseAdapter() {
        public void mouseReleased(MouseEvent Me) {
            if (Me.isPopupTrigger()) {
                popMenu.show(Me.getComponent(), Me.getX(), Me.getY());
            }
        }
    });

}

public void actionPerformed(ActionEvent arg0) {

}

public static void main(String[] args) {

    Runnable r = new Runnable() {
        public void run() {
            PopUpMenu pop = new PopUpMenu();
        }
    };
    SwingUtilities.invokeLater(r);

}

}

Ответы [ 2 ]

4 голосов
/ 09 марта 2011

Ваш код перфектен (слушатель мыши не нужен, и панель должна быть добавлена ​​на панель содержимого JFrame), но он работаетВозможно, это будет работать лучше, если вы дадите какой-нибудь текст своим пунктам меню:

cut = new JMenuItem("Cut");
1 голос
/ 09 марта 2011

Ваш MenuItem размер равен 0, поэтому я полагаю.

Итак, установите текст для вашего MenuItem.

cut = new JMenuItem("Cut");
...
copy = new JMenuItem("Copy");

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...