4

メソッド呼び出しでイベントをトリガーすることは可能ですか? (クリックと一緒に)。以下はサンプルコードです。これは動作するコードではなく、私が想像する方法を示しているだけです。

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?.
    }
}

物事を実行する方法はありますか?

実際、私が直面している問題を解決しようとしていたときに、このアイデアが頭に浮かびました。私はそれについて別の質問を投稿しました。

(以前に投稿された質問に関して):サーバークライアントに関して、私はこれを達成したい:

  • クライアントが GUI のボタンをクリックしたとき。

  • サーバー側に送信される文字列「A」。

  • サーバーがクライアントから文字列 'A' を受け取ると、'methodA' を呼び出します。メソッドの呼び出しは
    、サーバー側の GUI に影響を与えます。クライアントとサーバーの GUI がそれに応じて更新されるようにします。

ありがとうございました。

4

1 に答える 1

15

JButtondoClick()から継承されたメソッドがありAbstractButtonます。

http://docs.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html#doClick

つまり、簡単に書くことができます

game.leftButton.doClick();
于 2012-12-03T17:04:51.030 に答える