welcome: please sign in
location: "クリック時の処理(2)"の差分
1と2のリビジョン間の差分
2012-01-10 12:25:28時点のリビジョン1
サイズ: 129
編集者: masahiko
コメント:
2012-01-10 12:27:38時点のリビジョン2
サイズ: 1228
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 4: 行 4:
 . {{attachment:setumei2a.png}}
 . {{attachment:setumei2b.png}}

----
=== 演習 ===
 {{{#!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() );
 }
}
 }}}

クリック時の処理(2)

マウスのボタンがどのピースの位置で押されたか判定する。

  • setumei2a.png

  • setumei2b.png


演習

  •    1 import javax.swing.*;
       2 import java.awt.*;
       3 import java.awt.event.*;
       4 
       5 public class Game4 extends JPanel implements MouseListener
       6 {
       7         Image img;
       8         int cx, cy;
       9         
      10         Game4()
      11         {
      12                 ImageIcon ii = new ImageIcon("game0.png");
      13                 img = ii.getImage();
      14                 addMouseListener(this);
      15         }
      16         
      17         public void paintComponent(Graphics g)
      18         {
      19                 g.drawImage(img, 0,0, this);
      20                 g.setColor(Color.blue);
      21                 g.fillRect(cx*100, cy*100, 100, 100);
      22         }
      23         
      24         public void mousePressed(MouseEvent e)
      25         {
      26                 int x, y;
      27                 x = e.getX();
      28                 y = e.getY();
      29                 cx = ? ;
      30                 cy = ? ;
      31                 repaint();
      32         }
      33         public void mouseEntered(MouseEvent e) { }
      34         public void mouseExited(MouseEvent e) { }
      35         public void mouseReleased(MouseEvent e) { }
      36         public void mouseClicked(MouseEvent e) { }
      37         
      38         public static void main(String[] args)
      39         {
      40                 JFrame f;
      41                 
      42                 f = new JFrame();
      43                 f.setVisible(true);
      44                 f.setTitle("15Game");
      45                 f.setSize(420, 450);
      46                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      47                 f.add( new Game4() );
      48         }
      49 }
    

クリック時の処理(2) (最終更新日時 2012-03-27 04:49:09 更新者 masahiko)