How to invoke JMenu programmatically? I want JMenu appear when I press a button.
|
1 answer
Actually JMenu you will not thrust in JButton. However, there is a way with JPopupMenu. The original is here .
public class ToolbarDemo { public static void main(String[] args) { final JFrame frame = new JFrame(); frame.setPreferredSize(new Dimension(600, 400)); final JToolBar toolBar = new JToolBar(); //Create the popup menu. final JPopupMenu popup = new JPopupMenu(); popup.add(new JMenuItem(new AbstractAction("Option 1") { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(frame, "Option 1 selected"); } })); popup.add(new JMenuItem(new AbstractAction("Option 2") { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(frame, "Option 2 selected"); } })); final JButton button = new JButton("Options"); button.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { popup.show(e.getComponent(), e.getX(), e.getY());//при нажатии на кнопку всплывает меню } }); toolBar.add(button); frame.getContentPane().add(toolBar, BorderLayout.NORTH); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } } - Hmm, it's bad that you can't use regular JMenu, but this is understandable, the main thing is that there are no bugs when calling JPopupMenu because this is a window) - Denis Kotlyarov
|
setVisible(true)? - LEQADA