Java – is it possible to trigger JButton events through method calls – rather than JButton clicks?
Can events be triggered through method calls? (and click)
import java.awt.event.*;
import javax.swing.*;
public class Game extends JFrame
{
JButton leftButton = new JButton("left");
JButton rightButton = new JButton ("right");
private JButton Move(String moveClickString)
{
JButton chosenButton = new JButton();
if (moveClickString.equals("left"))
{
chosenButton = leftButton;
}
if (moveClickString.equals("right"))
{
chosenButton = rightButton;
}
return chosenButton;
}
public void actionTrigger(JButton buttonClick)
{
buttonClick.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Object buttonPressed = e.getSource();
if (buttonPressed == leftButton);
{
//do left
}
if (buttonPressed == rightButton);
{
//do right
}
}
});
}
public static void main(String[] args)
{
Game game = new Game();
game.setVisible(true);
game.actionTrigger(game.Move("left")); //some way to execute things?.
}
}
Is there any way to implement it?
In fact, I came up with this idea when I tried to solve the problem I faced I posted a separate question
(about the previously published question): as far as the server client is concerned, I want to achieve this goal:
>When the client clicks a button in the GUI. > The string 'a' sent to the server. > When the server receives the string 'a' from the client, it calls' methoda '; The method a call will affect the GUI on the server side The client and server GUIs are updated accordingly
thank you.
Solution
JButton has a doclick () method inherited from abstractbutton
http://docs.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html#doClick
This means you can simply write
game.leftButton.doClick();
