<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>クリック時の処理(2)</title><revhistory><revision><revnumber>5</revnumber><date>2012-03-27 04:49:09</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2012-01-10 12:46:39</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2012-01-10 12:43:53</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2012-01-10 12:27:38</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2012-01-10 12:25:28</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>クリック時の処理(2)</title><para>つぎのようなプログラムを書きます。 </para><para>マウスのボタンがどのピースの位置で押されたか判定し、 そのピースの位置を四角く塗りつぶします。 </para><para>数字６のところで押されたらこのように表示される。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E6%99%82%E3%81%AE%E5%87%A6%E7%90%86%282%29?action=AttachFile&amp;do=get&amp;target=setumei2b.png"/></imageobject><textobject><phrase>setumei2b.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>マウスが押されたときの処理はmousePressedに書き、 表示の処理はpaintComponentに書きます。 </para><para>処理に必要なデータは属性値(インスタンス変数の値)として記憶します。 </para><para>クリックされた位置により cx, cy の値を次のように設定することにします。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E6%99%82%E3%81%AE%E5%87%A6%E7%90%86%282%29?action=AttachFile&amp;do=get&amp;target=setumei2a.png"/></imageobject><textobject><phrase>setumei2a.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>次に、paintComponent内でこの値を使って 長方形を描きます。 </para><para>数字６のところで押されたときは </para><itemizedlist><listitem override="none"><para>cx = 2 </para></listitem><listitem override="none"><para>cy = 1 </para></listitem></itemizedlist><para>となり、上の実行例のようになります。 </para><!--rule (<hr>) is not applicable to DocBook--><section><title>演習</title><para>？の２箇所を書き、プログラムを完成させなさい。 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><token><![CDATA[import]]></token><![CDATA[ ]]><methodname><![CDATA[javax.swing.*]]></methodname><![CDATA[;]]>
<token><![CDATA[import]]></token><![CDATA[ ]]><methodname><![CDATA[java.awt.*]]></methodname><![CDATA[;]]>
<token><![CDATA[import]]></token><![CDATA[ ]]><methodname><![CDATA[java.awt.event.*]]></methodname><![CDATA[;]]>

<token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[class]]></token><![CDATA[ ]]><methodname><![CDATA[Game4]]></methodname><![CDATA[ ]]><token><![CDATA[extends]]></token><![CDATA[ ]]><methodname><![CDATA[JPanel]]></methodname><![CDATA[ ]]><token><![CDATA[implements]]></token><![CDATA[ ]]><methodname><![CDATA[MouseListener]]></methodname>
<![CDATA[{]]>
<![CDATA[        ]]><methodname><![CDATA[Image]]></methodname><![CDATA[ ]]><methodname><![CDATA[img]]></methodname><![CDATA[;]]>
<![CDATA[        ]]><token><![CDATA[int]]></token><![CDATA[ ]]><methodname><![CDATA[cx]]></methodname><![CDATA[, ]]><methodname><![CDATA[cy]]></methodname><![CDATA[;]]>
<![CDATA[        ]]>
<![CDATA[        ]]><methodname><![CDATA[Game4]]></methodname><![CDATA[()]]>
<![CDATA[        {]]>
<![CDATA[                ]]><methodname><![CDATA[ImageIcon]]></methodname><![CDATA[ ]]><methodname><![CDATA[ii]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><methodname><![CDATA[ImageIcon]]></methodname><![CDATA[(]]><phrase><![CDATA["game0.png"]]></phrase><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[img]]></methodname><![CDATA[ = ]]><methodname><![CDATA[ii]]></methodname><![CDATA[.]]><methodname><![CDATA[getImage]]></methodname><![CDATA[();]]>
<![CDATA[                ]]><methodname><![CDATA[addMouseListener]]></methodname><![CDATA[(]]><token><![CDATA[this]]></token><![CDATA[);]]>
<![CDATA[        }]]>
<![CDATA[        ]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[paintComponent]]></methodname><![CDATA[(]]><methodname><![CDATA[Graphics]]></methodname><![CDATA[ ]]><methodname><![CDATA[g]]></methodname><![CDATA[)]]>
<![CDATA[        {]]>
<![CDATA[                ]]><methodname><![CDATA[g]]></methodname><![CDATA[.]]><methodname><![CDATA[drawImage]]></methodname><![CDATA[(]]><methodname><![CDATA[img]]></methodname><![CDATA[, 0,0, ]]><token><![CDATA[this]]></token><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[g]]></methodname><![CDATA[.]]><methodname><![CDATA[setColor]]></methodname><![CDATA[(]]><methodname><![CDATA[Color]]></methodname><![CDATA[.]]><methodname><![CDATA[blue]]></methodname><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[g]]></methodname><![CDATA[.]]><methodname><![CDATA[fillRect]]></methodname><![CDATA[(]]><methodname><![CDATA[cx]]></methodname><![CDATA[*100, ]]><methodname><![CDATA[cy]]></methodname><![CDATA[*100, 100, 100);]]>
<![CDATA[        }]]>
<![CDATA[        ]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[mousePressed]]></methodname><![CDATA[(]]><methodname><![CDATA[MouseEvent]]></methodname><![CDATA[ ]]><methodname><![CDATA[e]]></methodname><![CDATA[)]]>
<![CDATA[        {]]>
<![CDATA[                ]]><token><![CDATA[int]]></token><![CDATA[ ]]><methodname><![CDATA[x]]></methodname><![CDATA[, ]]><methodname><![CDATA[y]]></methodname><![CDATA[;]]>
<![CDATA[                ]]><methodname><![CDATA[x]]></methodname><![CDATA[ = ]]><methodname><![CDATA[e]]></methodname><![CDATA[.]]><methodname><![CDATA[getX]]></methodname><![CDATA[();]]>
<![CDATA[                ]]><methodname><![CDATA[y]]></methodname><![CDATA[ = ]]><methodname><![CDATA[e]]></methodname><![CDATA[.]]><methodname><![CDATA[getY]]></methodname><![CDATA[();]]>
<![CDATA[                ]]><methodname><![CDATA[cx]]></methodname><![CDATA[ = ? ;]]>
<![CDATA[                ]]><methodname><![CDATA[cy]]></methodname><![CDATA[ = ? ;]]>
<![CDATA[                ]]><methodname><![CDATA[repaint]]></methodname><![CDATA[();]]>
<![CDATA[        }]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[mouseEntered]]></methodname><![CDATA[(]]><methodname><![CDATA[MouseEvent]]></methodname><![CDATA[ ]]><methodname><![CDATA[e]]></methodname><![CDATA[) { }]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[mouseExited]]></methodname><![CDATA[(]]><methodname><![CDATA[MouseEvent]]></methodname><![CDATA[ ]]><methodname><![CDATA[e]]></methodname><![CDATA[) { }]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[mouseReleased]]></methodname><![CDATA[(]]><methodname><![CDATA[MouseEvent]]></methodname><![CDATA[ ]]><methodname><![CDATA[e]]></methodname><![CDATA[) { }]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[mouseClicked]]></methodname><![CDATA[(]]><methodname><![CDATA[MouseEvent]]></methodname><![CDATA[ ]]><methodname><![CDATA[e]]></methodname><![CDATA[) { }]]>
<![CDATA[        ]]>
<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[static]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[main]]></methodname><![CDATA[(]]><methodname><![CDATA[String]]></methodname><![CDATA[[] ]]><methodname><![CDATA[args]]></methodname><![CDATA[)]]>
<![CDATA[        {]]>
<![CDATA[                ]]><methodname><![CDATA[JFrame]]></methodname><![CDATA[ ]]><methodname><![CDATA[f]]></methodname><![CDATA[;]]>
<![CDATA[                ]]>
<![CDATA[                ]]><methodname><![CDATA[f]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><methodname><![CDATA[JFrame]]></methodname><![CDATA[();]]>
<![CDATA[                ]]><methodname><![CDATA[f]]></methodname><![CDATA[.]]><methodname><![CDATA[setVisible]]></methodname><![CDATA[(]]><symbol><![CDATA[true]]></symbol><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[f]]></methodname><![CDATA[.]]><methodname><![CDATA[setTitle]]></methodname><![CDATA[(]]><phrase><![CDATA["15Game"]]></phrase><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[f]]></methodname><![CDATA[.]]><methodname><![CDATA[setSize]]></methodname><![CDATA[(420, 450);]]>
<![CDATA[                ]]><methodname><![CDATA[f]]></methodname><![CDATA[.]]><methodname><![CDATA[setDefaultCloseOperation]]></methodname><![CDATA[(]]><methodname><![CDATA[JFrame]]></methodname><![CDATA[.]]><methodname><![CDATA[EXIT_ON_CLOSE]]></methodname><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[f]]></methodname><![CDATA[.]]><methodname><![CDATA[add]]></methodname><![CDATA[( ]]><token><![CDATA[new]]></token><![CDATA[ ]]><methodname><![CDATA[Game4]]></methodname><![CDATA[() );]]>
<![CDATA[        }]]>
<![CDATA[}]]>
</programlisting></listitem></itemizedlist></section></section></article>