如何通过单击另一个按钮java执行按钮?

时间:2011-05-14 14:02:11

标签: java click mouse execute 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。我想要以下内容:当我点击“File-&gt; New”时,它会执行btnExample。我的代码只能更改按钮标题并显示单击的视觉效果。但是我怎么能真正执行呢?

5 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分: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
}

答案 2 :(得分:1)

你不应该使用MouseListener。

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

阅读How to Use Actions上的Swing教程中的部分。

答案 3 :(得分:0)

答案 4 :(得分:0)

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

        btnExample.doClick();

这为我做了工作