SlideShare a Scribd company logo
1 of 15
ネットワークプログラミング
      応用演習


第7回 グラフィック描画とマウスイベント


       2011/11/9
クラスとmain

 今回配布しているTest71.javaでは,
 main関数内でTest71のインスタンスを
 生成している.実行はmainから開始.

  public static void main(String[] args) {
    new Test71();
  }

  Test71() {
    ...ここはコンストラクタ.内容は省略...
  }
new Test71()とは?

   オブジェクト指向言語の用語
   ・クラス ≒ 設計図
   ・インスタンス ≒ 実体(newで生成)
    Test71 t71 = new Test71();
                     ここが省略されている
    設計図


    Test71                  ←newにより
                             生成される
メソッドとstatic

  メソッド宣言にstaticが付いている
  = クラスメソッド
    クラス名+メソッド名で利用
    インスタンス変数(フィールド)に
       アクセス不可

  メソッド宣言にstaticが付いていない
  = インスタンスメソッド
    インスタンス名+メソッド名で利用
    インスタンス変数(フィールド)に
       アクセス可
クラスメソッドとインスタンスメソッドの例

 クラスメソッドの例
 例1:Math.cos( theta );
 例2:System.out.println( "test" );
 例3:System.exit(0);

 インスタンスメソッドの例
 Test t = new Test();
 例1:t.hoge();
 例2:t.fuga();
 など
ウィンドウの表示(P.15)

 Java言語でウィンドウを司るクラスとして
 Frameが存在する.
 まずは,カラのウィンドウを開いてみよう.

  Frame f = new Frame();
  f.setVisible( true );


 1行目でFrameのインスタンスを生成し,
 2行目で表示している.
 ただし,何も無いウィンドウである.
開発が進むとメソッドが増える
 Java言語で大きなプログラムを組む際,
 「メソッドを増やす・クラスを増やす」
 により,確実なプログラミングが要求される

 メソッド間で変数を共有したい
 (共有する変数を数組使いたい)


 インスタンス変数(フィールド)を
 利用することで解決

           後々,説明します
addWindowListenerなど

   マウスなどの操作は,
   イベントとしてプログラムに伝えられる

                 ウィンドウを閉じる

      Test71      Java言語が自動的に
                  windowClosingを実行

                  プログラム終了
 addWindowListener = この動作を登録する
マウスに関連するイベント

 addMouseListenerによるイベント
 mouseClick      クリック
 mouseEntered    領域に入る
 mouseExited     領域から出る
 mousePressed    ボタンが押された
 mouseReleased   ボタンが離された

 addMouseMotionListenerによるイベント

 mouseDragged    ドラッグされた
 mouseMoved      動いた
マウスクリックの処理について

c.addMouseListener( new MouseListener() {
  public void mouseClicked( MouseEvent e ) {
     c.setOval( e.getX(), e.getY() );
  }
  ...以下略...


  イベント内容はeに代入されている.
  詳しくはMouseEventクラスを調べること.
  (課題7-a)
Test72の構造(P.16)
  fの上にcを載せている.
  描画やイベント取得はcに対して行っている




                      f
                  c
MyCanvasクラス
  描画するための自作クラス.Canvasを継
  承.
  Javaでは,描画などのために
  自作クラスを作ることが多い.

              インスタンス変数
              x, y:共にint型の配列
              num:点の数を記憶

   MyCanvas
              インスタンスメソッド
              paint:描画を行う
              setOval:座標を記憶
Test72とMyCanvas
                  (1)cの上でクリック動作

                  (2)c.setOvalを呼び出し,
                       座標を渡す

           c      (3)x[num]とy[num]に
                       座標を記憶
                  (4)numが200以上に
                       なったらnumを0に
                  (5)repainメソッドを実行
                       →paintメソッドが呼ばれる
                  (6)paintメソッド内で
                      num個の点を描画
課題7-b, 7-c
 課題7-bは,ドラッグのイベントを登録すれば良い.
 課題7-cは,以下のような動作を想定している.


                 中ボタン
                 クリック

             c                c

    点描画                 線描画
   なお,どちらの描画モードでも点や線を
   追加できるようにすること.
課題7-cのヒント
MyCanvasクラスのpaintメソッド内で,
現在の描画モード(変数で保持しておく)から
描画に使う命令を変えれば良い.
追加する変数:mode
追加するメソッド:change_mode

                中ボタン
                クリック

            c                     c

 modeが1なら              modeが0なら
 点描画                   線描画

More Related Content

Viewers also liked

Mutimedia opensource parte_i
Mutimedia opensource parte_iMutimedia opensource parte_i
Mutimedia opensource parte_ixose anton Vila
 
artigues jero 50fotografs
artigues jero 50fotografsartigues jero 50fotografs
artigues jero 50fotografsJeroam
 
Anem a valència
Anem a valènciaAnem a valència
Anem a valènciafebopla
 
The quest for sustainable livelihoods
The quest for sustainable livelihoodsThe quest for sustainable livelihoods
The quest for sustainable livelihoodsAlfredo Darag
 
Actividad5 mantenimiendo del sistema operativo
Actividad5 mantenimiendo del sistema operativoActividad5 mantenimiendo del sistema operativo
Actividad5 mantenimiendo del sistema operativoEsteban Velasquez
 
Trabajo de informática katerine
Trabajo de informática katerineTrabajo de informática katerine
Trabajo de informática katerineandres
 
Finalistas episj timor leste
Finalistas episj   timor lesteFinalistas episj   timor leste
Finalistas episj timor lesteBruno Pires
 
Diplomado En Neuromarketing Programa Para EspañA 100202x
Diplomado En Neuromarketing Programa Para EspañA 100202xDiplomado En Neuromarketing Programa Para EspañA 100202x
Diplomado En Neuromarketing Programa Para EspañA 100202xxbll
 
No ano da música
No  ano  da músicaNo  ano  da música
No ano da músicaBulibreiro
 
Princesas y enanos. Ana, Paula e Idaira
Princesas y enanos. Ana, Paula e IdairaPrincesas y enanos. Ana, Paula e Idaira
Princesas y enanos. Ana, Paula e Idairayanete
 
אירנה סנדלר | Irena Sandler
אירנה סנדלר | Irena Sandlerאירנה סנדלר | Irena Sandler
אירנה סנדלר | Irena SandlerAmit Moreno
 

Viewers also liked (19)

No. 2-mei-2010
No. 2-mei-2010No. 2-mei-2010
No. 2-mei-2010
 
Mutimedia opensource parte_i
Mutimedia opensource parte_iMutimedia opensource parte_i
Mutimedia opensource parte_i
 
(3,2) istoriski razvitok vo praktikuvawe na covekovite prava
(3,2) istoriski razvitok vo praktikuvawe na covekovite prava(3,2) istoriski razvitok vo praktikuvawe na covekovite prava
(3,2) istoriski razvitok vo praktikuvawe na covekovite prava
 
artigues jero 50fotografs
artigues jero 50fotografsartigues jero 50fotografs
artigues jero 50fotografs
 
Petrol
PetrolPetrol
Petrol
 
Anem a valència
Anem a valènciaAnem a valència
Anem a valència
 
The quest for sustainable livelihoods
The quest for sustainable livelihoodsThe quest for sustainable livelihoods
The quest for sustainable livelihoods
 
Actividad5 mantenimiendo del sistema operativo
Actividad5 mantenimiendo del sistema operativoActividad5 mantenimiendo del sistema operativo
Actividad5 mantenimiendo del sistema operativo
 
Trabajo de informática katerine
Trabajo de informática katerineTrabajo de informática katerine
Trabajo de informática katerine
 
Incheierea Contractelor
Incheierea ContractelorIncheierea Contractelor
Incheierea Contractelor
 
Pruebas saber 2011
Pruebas saber 2011Pruebas saber 2011
Pruebas saber 2011
 
Finalistas episj timor leste
Finalistas episj   timor lesteFinalistas episj   timor leste
Finalistas episj timor leste
 
1 animales de granja
1 animales de granja1 animales de granja
1 animales de granja
 
WPF
WPFWPF
WPF
 
Diplomado En Neuromarketing Programa Para EspañA 100202x
Diplomado En Neuromarketing Programa Para EspañA 100202xDiplomado En Neuromarketing Programa Para EspañA 100202x
Diplomado En Neuromarketing Programa Para EspañA 100202x
 
No ano da música
No  ano  da músicaNo  ano  da música
No ano da música
 
Triangulos
TriangulosTriangulos
Triangulos
 
Princesas y enanos. Ana, Paula e Idaira
Princesas y enanos. Ana, Paula e IdairaPrincesas y enanos. Ana, Paula e Idaira
Princesas y enanos. Ana, Paula e Idaira
 
אירנה סנדלר | Irena Sandler
אירנה סנדלר | Irena Sandlerאירנה סנדלר | Irena Sandler
אירנה סנדלר | Irena Sandler
 

Similar to Enshu7

OpenCVの拡張ユーティリティ関数群
OpenCVの拡張ユーティリティ関数群OpenCVの拡張ユーティリティ関数群
OpenCVの拡張ユーティリティ関数群Norishige Fukushima
 
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz..."Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...nkazuki
 
XunitとMoq 公開用
XunitとMoq 公開用XunitとMoq 公開用
XunitとMoq 公開用ESM SEC
 
ji-5. 繰り返し計算
ji-5. 繰り返し計算ji-5. 繰り返し計算
ji-5. 繰り返し計算kunihikokaneko1
 
Kerasを用いた3次元検索エンジン@TFUG
Kerasを用いた3次元検索エンジン@TFUGKerasを用いた3次元検索エンジン@TFUG
Kerasを用いた3次元検索エンジン@TFUGOgushi Masaya
 
Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門cocopon
 
SWETの取り組むImage Based Testing
SWETの取り組むImage Based TestingSWETの取り組むImage Based Testing
SWETの取り組むImage Based TestingDeNA
 
ji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けkunihikokaneko1
 
自習形式で学ぶ「DIGITS による画像分類入門」
自習形式で学ぶ「DIGITS による画像分類入門」自習形式で学ぶ「DIGITS による画像分類入門」
自習形式で学ぶ「DIGITS による画像分類入門」NVIDIA Japan
 
OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門uranishi
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII
 
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLAtsushi Tadokoro
 

Similar to Enshu7 (13)

OpenCVの拡張ユーティリティ関数群
OpenCVの拡張ユーティリティ関数群OpenCVの拡張ユーティリティ関数群
OpenCVの拡張ユーティリティ関数群
 
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz..."Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
 
XunitとMoq 公開用
XunitとMoq 公開用XunitとMoq 公開用
XunitとMoq 公開用
 
ji-5. 繰り返し計算
ji-5. 繰り返し計算ji-5. 繰り返し計算
ji-5. 繰り返し計算
 
CppCV03
CppCV03CppCV03
CppCV03
 
Kerasを用いた3次元検索エンジン@TFUG
Kerasを用いた3次元検索エンジン@TFUGKerasを用いた3次元検索エンジン@TFUG
Kerasを用いた3次元検索エンジン@TFUG
 
Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門
 
SWETの取り組むImage Based Testing
SWETの取り組むImage Based TestingSWETの取り組むImage Based Testing
SWETの取り組むImage Based Testing
 
ji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分け
 
自習形式で学ぶ「DIGITS による画像分類入門」
自習形式で学ぶ「DIGITS による画像分類入門」自習形式で学ぶ「DIGITS による画像分類入門」
自習形式で学ぶ「DIGITS による画像分類入門」
 
OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
 
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
 

Enshu7