1
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。我的代码只能更改按钮标题并显示单击的视觉效果。但我怎么能真正执行它呢?

4

4 回答 4

8

我只有一个建议——不要那样做。不要以这种方式绑定 GUI 组件。

如果您希望两个组件执行相同的操作,只需将此操作打包到一个方法中,然后从两个组件调用该方法。

另外,使用 ActionListener - 您确定用户将使用鼠标而不是键盘按下它吗?如果您为这些按钮/组件添加快捷方式怎么办?

于 2011-05-14T14:06:12.260 回答
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
}
于 2011-07-26T09:30:29.350 回答
1

您不应该为此使用 MouseListener。

您应该使用操作。然后,您可以将 Action 添加到 JButton 和 JMemuItem。

阅读 Swing 教程中有关如何使用操作的部分。

于 2011-05-14T14:55:53.583 回答
0

太棒了,我在您的代码中找到了我的解决方案!

        btnExample.doClick();

这为我完成了工作

于 2020-05-02T00:11:35.477 回答