1

Java コードでは:

// Define ActionListener

ActionListener actionListener = new ActionListener() {

public void actionPerformed(ActionEvent actionEvent) {

        JButton button = **(JButton)actionEvent.getSource();**
        int red = random.nextInt(255);
        int green = random.nextInt(255);
        int blue = random.nextInt(255);
        button.setBackground(new Color(red, green, blue));

    }
};

強調表示された ( と の間の**)**コードは何をしますか?

どのような検索用語を使用すればよいかわからないため、このテーマについて調査するのは非常に困難です。:o

誰でも助けてくれることを願っています。ティア

4

5 に答える 5

6

によって返されたオブジェクトをにキャストしています。actionEvent.getSource()JButton

ここここでいくつかの情報を読むことができます。

于 2011-05-31T09:25:58.433 に答える
0

JButton であると想定するアクションのソースを取得し、アクション イベントのソースを JButton クラスにキャストします。

于 2011-05-31T09:26:38.207 に答える
0

ActionEvent オブジェクトは、ユーザー アクションを表します。コードによると、このアクションは JButton で実行されています。このオブジェクトには、イベントを発生させたオブジェクトを送り返す getSource() メソッドがあります。ただし、このようなイベントは何でも送信できるため、getSource() は型指定されていないオブジェクトを返します。このソースを使用できるようにするには、元のタイプ (Jbutton) にキャストする必要があります (この場合、背景を設定します)。

http://download.oracle.com/javase/1.4.2/docs/api/java/util/EventObject.html#getSource ()を確認してください

于 2011-05-31T09:28:37.613 に答える
0

興味深いのは、キャスト(JButton)と呼ばれるです。与えられたクラス A (以下では「foo」と呼ばれる) のオブジェクトが実際にクラス B のインスタンスであることが確実な場合は、キャストを使用できます。

B bar = (B) foo;

好きなようにバー変数を使用します。ただし、foo が実際には B のインスタンスでない場合、ランタイムはClassCastException. また、 instanceofキーワードについて読むことにも興味があるかもしれません。

于 2011-05-31T09:29:01.400 に答える
0

クラスの「キャスティング」と呼ばれます。actionEvent.getSource() は、JButton だけでなく他のウィジェットも返すことができます。そこで彼らは、「すべてがそこに収まるのでオブジェクトを返して、開発者に Java に何を期待するかを伝えさせる」ことを決定しました。 JButton のようにアクセスするには」

于 2011-05-31T09:29:31.127 に答える