Самый простой способ заставить JPopupMenu щелкнуть левой кнопкой мыши? - PullRequest
0 голосов
/ 23 апреля 2020
/**
 * Initializes button panel and related constraints for button holding purposes.
 * This method contains it's own constraints so that our buttons can maintain
 * their own look that is separate from the global constraints.
 */
  private void addButtons() {

  setLayout(new GridBagLayout());
  GridBagConstraints buttonConstraints = new GridBagConstraints();


  JButton lButton, mButton, rButton;

  lButton=new JButton("File");
  mButton=new JButton("Reset");
  rButton=new JButton("Quit");

  rButton.setActionCommand("Quit");
  rButton.addActionListener(this);
  rButton.setToolTipText("Click to exit the game");

  mButton.setActionCommand("Reset");
  mButton.addActionListener(this);
  mButton.setToolTipText("Click to reset all game peices");

  JPopupMenu newButton = new JPopupMenu();
  JMenuItem menu1 = new JMenuItem("Load");
  menu1.addActionListener(this);
  newButton.add(menu1);
  JMenuItem menu2 = new JMenuItem("Save");
  menu2.addActionListener(this);
  newButton.add(menu2);
  lButton.setToolTipText("Right click for menu options");

  buttonPanel_.add(lButton);
  buttonPanel_.add(mButton);
  buttonPanel_.add(rButton);
  lButton.setComponentPopupMenu(newButton);


  buttonConstraints.anchor = GridBagConstraints.NORTH;
  buttonConstraints.insets = new Insets(0, 0, 0, 0);
  buttonConstraints.weightx = 0;
  buttonConstraints.weighty = 0.2;
  buttonConstraints.gridx = 1;
  buttonConstraints.gridy = 0;

  add(buttonPanel_, buttonConstraints);

  return;
  }

Я работаю над проектом для моего класса дизайна программного обеспечения. Мы добавляем функцию сохранения / загрузки файла в созданную нами игру. Мы используем JPopupMenu, чтобы опустить обе эти опции, когда нажимаем крайнюю левую кнопку в окне игры, называемую «Файл».

В настоящий момент, как и раньше, функциональность работает только при щелчке правой кнопкой мыши по кнопке «Файл». Я искал простой и элегантный способ добавить эту функцию к левому щелчку или поменять правый щелчок левой кнопкой мыши. Есть ли способ обойтись без добавления целой связки дополнительного кода? (Попытка сделать это максимально упорядоченным)

...