• ベストアンサー

メソッドの引数の意味について

 こんにちは。  JAVAの初心者です、宜しくお願いします。    drawImage(img,x,y,imageobserverオブジェクト)の引数で最後の「imageobserverオブジェクト」とはどのような意味でしょう。  普通はthisを入れる、と本には書かれていますが、this以外が入る場合とはどのような場合でしょう。    また、addMousemotionListener(this)のthisの引数の意味はどのような意味でしょう??  「このオブジェクト」に来たイベントをListenerとしてとるという意味でしょうか。  以上宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

> 「imageobserverオブジェクト」とはどのような意味でしょう。 ImageObserverインタフェースを実装したクラスのオブジェクトです。 APIリファレンス http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/image/ImageObserver.html を参照して頂くと分かると思いますが、AWTやSwingのクラスはImageObserverインタフェースを実装したクラスになっています。 つまり、たとえば下記のようなSwingのクラスを継承したクラスMyButton ---------- public class MyButton extends JButton { ... } ---------- の中でdrawImage()メソッドを使用する場合、このMyButtonクラスもImageObserverインタフェースを実装していることになるので、drawImage(img,x,y,this)のように書くことができます。 ※) ImageObserverインタフェースを別のクラスで実装していれば最後の引数にthis以外が入ることもありますが、この方法はほとんど見かけません。 > addMousemotionListener(this)のthisの引数の意味はどのような意味でしょう?? addMouseMotionListener()メソッドの引数には、MouseMotionListenerインタフェース http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/event/MouseMotionListener.html を実装したクラスのオブジェクトが入ります。 addMouseMotionListener()メソッドを記述しているご自分のソースコードをご覧下さい。 ---------- public class ..... implements MouseMotionListener { ..... } ---------- または、 ---------- public class ..... extends MouseMotionAdapter { ..... } ---------- になっていませんか? これでこのクラス自体がMouseMotionListenerインタフェースを実装したクラスになるので、addMouseMotionListener(this)のように自分自身のオブジェクトを渡すように記述できます。 ちなみに、上記のようなクラスはMouseMotionListenerインタフェースを実装するために、 ---------- public void mouseDragged(MouseEvent e) { ..... } public void mouseMoved(MouseEvent e) { ..... } ---------- の2つのメソッドが実装されていると思います。

関連するQ&A

  • メソッドの引数としてのthisの意味

    java初心者です。教えてください。 メソッドの引数としてのthisは何を表しているのですか? いろいろ調べてみてthisには以下の2つの使用法があることがわかりました。 1.インスタンス変数の名前とインスタンスメソッド内のローカル変数名がかぶったときに、メソッド内でインスタンス変数を表すときにthis.変数名とする。 2.あるクラスのコンストラクタ内で、同じクラスの別のコンストラクタを呼ぶときに使う。 しかし、引数としてのthisの意味がわかりません。 具体的には、addMouseListener(this);や、g.drawImage(img,10,10,this);のthisです。 後者の場合はオブジェクトgのインスタンスメソッドなので、thisはオブジェクトgへの参照を表しているのでしょうか?

    • ベストアンサー
    • Java
  • 画像の回転

    Javaで画像の回転を180度時計回りに回転させたいのですが どのようにしたら良いのでしょうか? Image img = new Image; img = getImage(getDocumentBase(), "images/test.png"); g.drawImage( img, x, y, this); あとimportも何を書けばよいのかもわかりません。 グラフィックスについて詳しく書かれている本も知りたいです。

    • ベストアンサー
    • Java
  • javascriptでオブジェクトのメソッドを使う

    JavaScriptでnewでオブジェクト化したクラス(?)のメソッド、フィールドを利用する方法を教えて下さい。 javascriptにもオブジェクト化という考え方があると聞いたのですが、 例えば、Javaでいうsetter getterのようなメソッドを作り、使用することはできるのでしょうか? 下記のようなコードを実行したところ Uncaught TypeError: Object #<mousePosi> has no method 'setPara' というエラーが出てしまい、setParaというメソッドはない。と言われてしまいます。 しかし、mousePosi()をオブジェクト化することはできているようなので、 setParaとgetParaを使えるのではないかとおもいました。 どなたかアドバイス下さい。お願いします。 ------------------------------------------------------------------------------------------------- (function LineMain() { console.log("マウスの位置座標を表示"); // console.log("X座標=" + mymouse.x + ",Y座標=" + mymouse.y); //マウスムーブでeventControlを呼び出し addEventListener("mousemove", eventControl, false); function eventControl(event) { var event = event; var myMousePosi = new mousePosi(); myMousePosi.setPara(event); // console.log("X座標=" + obj.getMouse().x + ",Y座標=" + obj.getMouse().y); } function mousePosi() { var paraMouse = { x : 0, y : 0 }; function setPara(event) { this.paraMouse.x = event.x; this.paraMouse.y = event.y; } function getPara() { return this.paraMouse; } } })();

  • 引数が変わってしまいます。

    AC3で開発を行っております。 複数のオブジェクト(変数の種類は同じ)を配列で確保し、 一気に処理をしようとしているのですが、引数の動作がうまくいきません。 以下が問題のソースです。 var peat:Array ; var fg1:Object = new Object(); var fg2:Object = new Object(); fg1 = { _sp:Sprite, _img:Loader , _url:String , _x:int, _y:int }; fg2 = { _sp:Sprite, _img:Loader , _url:String , _x:int, _y:int }; peat = new Array( fg1 ); peat.push( fg2 ); for(i = 0;i < 2;i++) { // 値の代入 // クリック時の処理 peat[i].sp.addEventListener( MouseEvent.CLICK , function(event:MouseEvent):void{ test(event, arguments.callee, peat[i]); } ); } クリックしたときに それぞれのオブジェクトを参照したいのですが、 どちらも peat[2] を参照しているようなのです。 (for文の後に i=0 とすると先に設定したほうは正しく動作します。) AC3での開発が初めてなので、変数の宣言から怪しいかも知れませんが ご助力お願いいたします。

    • ベストアンサー
    • Flash
  • JButtonの画像をactionPerformedメソッド内で再描画

    JButtonの画像をactionPerformedメソッド内で再描画したい。 以下のソースのようにして、再描画したいのです。 setIconメソッドではなく、 JButtonに対して描画したものに対して再描画したいです。 Graphics2DクラスについてJAVA APIで調べましたが、 仕組の理解に至りませんでした。 仕組みと方法を教えて頂きたいです。 よろしくお願いいたします。 import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; public class test extends JFrame implements ActionListener{ JButton b= new JButton(); public static void main(String a[]) { new test(); } public test() { super(); this.setSize(100,100); b.addActionListener(this); b.add(new Zoom(new ImageIcon("img1.jpg"),0,0,50,50)); this.add(b); this.setVisible(true); } class Zoom extends JComponent { private static final long serialVersionUID = 1L; private ImageIcon icon = null; private int x = 0; private int y = 0; private int h = 0; private int w = 0; private double scale = 1.0d; public Zoom(ImageIcon icon, int x, int y, int w, int h) { super(); this.icon = icon; this.x = x; this.y = y; this.w = w; this.h = h; } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.scale(scale, scale); ////////////////////////////////// //画僧を再描画したい。 //g2.clearRect(0, 0, 80, 80);//× g2.drawImage(icon.getImage(), x, y, w, h, this); } } public void actionPerformed(ActionEvent e) { if(e.getSource()==b){ System.out.print("ok"); //this.repaint();//× //b.repaint();//× b.add(new Zoom(new ImageIcon("img2.jpg"),0,0,50,50));//(再描画できない) //b.setIcon(new ImageIcon("img2.jpg"));//ok(再描画出来る) } } }

    • ベストアンサー
    • Java
  • コンストラクタの引数の中のnew?

    はじめまして☆ java初心者ですが、意味がわからなくて困っています。 オブジェクトをnewする時、たまにコンストラクタの引数部分に newの記述がある時があるのですが、これはどういう意味でしょうか? (何のオブジェクトを作成しているのでしょうか?) よかったら、教えてください。

    • ベストアンサー
    • Java
  • 効率良くイベントに引数を渡すやり方

    sample2に引数「x」「y」を渡したいが為に 次のように何段階も同じような作業をしなくてはならない方法しか 自分は思いつかないのですが、何かもっと効率的な方法はあるのでしょうか? function main() { var element = document.createElement('div'); element.x = x; element.y = y; element.onclick = function(){ sample1(this.x, this.y); }; } function sample1(x, y) { var element = document.createElement('span'); element.x = x; element.y = y; element.onclick = function(){ sample2(this.x, this.y); }; } function sample2(x, y) { alert("x="x+" y="+y); }

  • getWidth();の引数についての質問です

     お早うございます。  getWidth();の引数についての質問です、宜しくお願いします。  ( )内の引数について調べると、「ImageObserver observer」を指定、となっていました。  この意味自体もよく分からないのですが、「パラメータ:observer - イメージがロードされるのを 待機しているオブジェクト」となっていました。  しかし、実際の使い方として、   getWidth( );   getWidth(this);   getWidth(NULL); というコードも見ます。  これって同じ同じ意味なのでしょうか。  getWidth( );は、getWidth(this);の省略形というのも考えられますが、getWidth(NULL);は違う意味のような気がするのです。  「イメージがロードされるのを待機しているオブジェクト」が「NULL」という意味になるのでしょうか。  この「ImageObserver型」についても、今一理解出来なくて・・・・・  どなたか、宜しくご教示下さい。

    • ベストアンサー
    • Java
  • static methodの引数thisについて

    javaの『static メソッド』の中では、thisが使用できないようです(再質問)。 毎度、お世話になります。 出来れば、下記のコードでthisの部分の変更をお教え頂けないでしょうか? 尚、この場合のthisは、myclsFFTクラスの中の、Thread(this)の引数と なっています(下記のコード参照)。 Q1) このthisに代わる記述、方法はありますか? static void start_threadFFT(int sw_curve){ ..... new Thread(this).start(); .... } 以上、宜しくお願い申し上げます。 ========================================== public class myclsFFT extends myDrawClass implements Runnable{ myclsFFT(){ } static void start_threadFFT(int sw_curve){ ..... new Thread(this).start(); .... } ...... } ==========================================

    • ベストアンサー
    • Java
  • javaでエラーを起こす変数の特定

    こんにちは. java初心者です. try~catchでエラー処理を行うことについて質問です. try~catchでは,エラーを起こした変数を特定することは出来ないのでしょうか? 例えばアプレットで画像を表示させる下記のコードについて, img1とimg2の変数を使いますが,img1に読ませるファイルは存在するが img2に読ませるファイルが存在しない場合に,「img2に読み込ませるファイルが存在しません」と表示したいのです. このようにどの変数がエラーを起こしたかを特定することはできますか? ============== import java.awt.*; import java.applet.*; import java.awt.event.*; public class Sample extends Applet{ Image img1, img2; int x=0, y=0; public void init() { System.out.println("init"); try{ img1 = getImage(getClass().getResource("img/sample1.jpg")); img2 = getImage(getClass().getResource("img/sample2.png")); } catch(Exception e){ System.out.println("エラー" + e + "が返されました."); } } public void paint(Graphics g){ g.drawImage(img1, 0, 0, this); g.drawImage(img2, 50, 50, this); } } ============== try{  img1に関する処理 } catch(Exception e){ img1に関するエラー処理 } try{  img2に関する処理 } catch(Exception e){ img2に関するエラー処理 } とやればできそうですが,あまりに冗長なので他に方法があると思うのですが… 自分もまだ勉強しはじめたばかりなので,初歩的な質問で恐縮です. 教本やネットで調べても分からなかったので質問させていただきました. よろしくお願いいたします.

    • ベストアンサー
    • Java

専門家に質問してみよう