ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュの(JButton) e.getSource

  • mixiチェック
  • このエントリーをはてなブックマークに追加
みなさんおつかれさまです。

些細な質問で申し訳ないのですが
参考書のサンプルコードの中に
class aaa implements ActionListener

public void actionPerformed(ActionEvent e)
tmp =(JButton) e.getSource;




のような記述があったのですが
tmp=(JButton) e.getSource;
という記述の中の(JButton)というのは何のために存在しているのでしょうか?

tmpはあらかじめnew JButtonでinitメソッドで定義されてます。

調べても出てこなかったのでよろしくお願いします。

コメント(2)

>という記述の中の(JButton)というのは何のために存在しているのでしょうか?

不要だと思ったら消してみればエラーになって
そのメッセージから理由がわかるのではないでしょうか。
コードが不足しすぎて、こちらでは試せませんが、
Jbutton型にObject型は入れられないと出ませんでしょうか。
つまりキャストのためではないでしょうか。

http://java.sun.com/javase/ja/6/docs/ja/api/java/util/EventObject.html#getSource()
public Object getSource()
Object型のものが得られるようです。
このプログラムでは必ずJButton型のものをObject型にキャストして返されるようです。
もしObjectの正体がJButton型以外だとClassCastExceptionという実行時例外が発生すると思います。

>tmpはあらかじめnew JButtonでinitメソッドで定義されてます。

new JButton()を定義というのでしょうか。
私は代入しているといいます。初回の場合は初期化とも言います。
JButton tmp;とかいうのを定義と言ったりしてます。
// initメソッドがそういう定義だという言い方はするかもです。

何が入っているかは関係なく、tmpが何型として宣言されているかが問題かと。
>>Cappuccinoさま

おっしゃる通りのコンパイルエラーがでました。
キャストについて調べてみたところ、おっしゃる通りキャスト、型変換のために(JButton)は存在しているのだということがわかりました。

これで疑問が解けたのでjavaの学習を進められます。
おかげですっきりしました。本当にありがとうございました!

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング