#java #click #mouse #execute #jbutton
#java #нажмите #мышь #выполнить #jbutton
Вопрос:
menuBar = new JMenuBar();
// File Menu
JMenu fileMenu = new JMenu("File");
menuBar.add(fileMenu);
// File->New
JMenuItem newMenuItem = new JMenuItem("New");
frame.setJMenuBar(menuBar);
newMenuItem.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent arg0) {
btnExample.setText("Clicked");
btnExample.doClick();
//---------->SOME HOW TO EXECUTE btnExample<---------//
}
});
fileMenu.add(newMenuItem);
final JButton btnExample = new JButton("SD");
frame.getContentPane().add(btnExample, "cell 4 0,growx,aligny top");
btnExample.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
spinnerForVar.setValue(4);//default value for spinner
spinnerForFunc.setValue(4);//default value for spinner
...
}
});
Привет! Я надеюсь, что кто-нибудь сможет мне помочь. Вот в чем проблема: у меня есть пункт меню «Создать» и есть кнопка btnExample. Я хочу следующее: когда я нажимаю «Файл-> Создать», он выполняет btnExample. Мой код способен только изменять название кнопки и показывать визуальный эффект нажатия. Но как я могу на самом деле выполнить это?
Ответ №1:
У меня есть только один совет — не делайте этого. Не привязывайте компоненты GUI таким образом.
Если вы хотите, чтобы два компонента выполняли одну и ту же операцию, просто упакуйте эту операцию в метод и вызовите метод из обоих компонентов.
Кроме того, используйте ActionListener — вы уверены, что пользователь собирается нажать ее с помощью мыши, а не клавиатуры? что, если добавить ярлыки к этим кнопкам / компонентам?
Комментарии:
1. @alexey, это может сработать, но это не лучшее решение. Swing был разработан для использования действий. «Общий метод», о котором говорится в этом ответе, должен быть действием, а не методом, который вы добавляете в свой класс.
Ответ №2:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
//My button to click on it
jButton1ActionPerformed(evt);//this is the call for the other button to execut it
}
Ответ №3:
Вы не должны использовать MouseListener для этого.
Вы должны использовать действия. Затем вы можете добавить действие как к JButton, так и к JMemuItem.
Прочитайте раздел из руководства по Swing о том, как использовать действия.
Ответ №4:
Удивительно, я нашел свое решение в ваших кодах!
btnExample.doClick();
Это сделало работу за меня