#acl All:
== クリック時の処理(2) ==

つぎのようなプログラムを書きます。

マウスのボタンがどのピースの位置で押されたか判定し、
そのピースの位置を四角く塗りつぶします。

数字6のところで押されたらこのように表示される。
 . {{attachment:setumei2b.png}}

マウスが押されたときの処理はmousePressedに書き、
表示の処理はpaintComponentに書きます。

処理に必要なデータは属性値(インスタンス変数の値)として記憶します。

クリックされた位置により
cx, cy の値を次のように設定することにします。

 . {{attachment:setumei2a.png}}

次に、paintComponent内でこの値を使って
長方形を描きます。

数字6のところで押されたときは
 . cx = 2
 . cy = 1
となり、上の実行例のようになります。
----
=== 演習 ===
?の2箇所を書き、プログラムを完成させなさい。

 {{{#!java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

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