【例】マウスをクリックすると、その座標をコマンド画面に表示する import java.applet.*; import java.awt.Graphics; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class mouse1 extends Applet implements MouseListener { int xx = 0, yy= 0; public void init() { addMouseListener(this); } public void mousePressed(MouseEvent e) { // マウスボタンを押した時 xx=e.getX(); yy=e.getY(); System.out.println("x = " + xx); System.out.println("y = " + yy); repaint(); } public void mouseClicked(MouseEvent e) {} // マウスボタンをクリックした時 public void mouseEntered(MouseEvent e) {} // マウスカーソルがアプレット領域に入った時 public void mouseExited(MouseEvent e) {} // マウスカーソルがアプレット領域から出た時 public void mouseReleased(MouseEvent e) {} // マウスボタンを離した時 public void paint(Graphics g){ g.drawString("マウスでクリックしてください", 150, 40); } }
【注意】
5つのマウスイベント
public void mousePressed(MouseEvent e) { }
public void mouseClicked(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
は、使わないものがあっても全て記述しておく必要がある。
5つのイベントが記述されていないとエラーが出る。
【問題】 上の例をdrawStringを用いて書き直しなさい。 (ヒント)文字の表示はこちらを参照 実行例
【例】クリックした場所に円を表示する
import java.applet.*; import java.awt.Graphics; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class mouse2 extends Applet implements MouseListener { int xx = -10, yy= -10; public void init() { addMouseListener(this); } public void mousePressed(MouseEvent e) { // マウスボタンを押した時 xx=e.getX(); yy=e.getY(); repaint(); } public void mouseClicked(MouseEvent e) {} // マウスボタンをクリックした時 public void mouseEntered(MouseEvent e) {} // マウスカーソルがアプレット領域に入った時 public void mouseExited(MouseEvent e) {} // マウスカーソルがアプレット領域から出た時 public void mouseReleased(MouseEvent e) {} // マウスボタンを離した時 public void paint(Graphics g){ g.drawString("マウスでクリックしてください", 150, 40); g.drawOval(xx - 20, yy - 20, 40, 40); } }
【例】マウスをクリックすると円を描く。その際、チェックボックスで色(赤、青)を選べるようにする。
import java.applet.*; import java.awt.event.*; import java.awt.Graphics; import java.awt.Color; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.awt.Checkbox; import java.awt.CheckboxGroup; import java.awt.Label; public class mouse3 extends Applet implements MouseListener, ItemListener { int col = 1; //色 int xx = 0,yy = 0; int yes=0, no=0; CheckboxGroup YesNo = new CheckboxGroup(); Checkbox c1=new Checkbox("赤",YesNo,true); Checkbox c2=new Checkbox("青",YesNo,false); Label Q = new Label("色を選んでください"); public void init() { addMouseListener(this); add(Q); add(c1); add(c2); c1.addItemListener(this); c2.addItemListener(this); } public void mousePressed(MouseEvent e) { // マウスボタンを押した時 xx=e.getX(); yy=e.getY(); repaint(); } public void mouseClicked(MouseEvent e) {} // マウスボタンをクリックした時 public void mouseEntered(MouseEvent e) {} // マウスカーソルがアプレット領域に入った時 public void mouseExited(MouseEvent e) {} // マウスカーソルがアプレット領域から出た時 public void mouseReleased(MouseEvent e) {} // マウスボタンを離した時 public void itemStateChanged(ItemEvent e) { if ( YesNo.getSelectedCheckbox()==c1 ) { col=1; } if ( YesNo.getSelectedCheckbox()==c2 ){ col=2; } repaint(); } public void paint(Graphics g){ if(col==1) g.setColor(Color.red); if(col==2) g.setColor(Color.blue); g.drawOval(xx-20, yy-20, 40, 40); } }
【問題】
チェックボックスを3つ(円、四角、三角)表示し、
円を押すと円
四角を押すと四角形
三角を押すと三角形
を表示するプログラムを作りなさい。
表示はマウスクリックした場所に行う。
実行例
【例】マウスをドラッグして図形を描く。
import java.applet.*; import java.awt.event.*; import java.awt.Color; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class mouse4 extends Applet implements MouseListener { int xb= 0, yb= 0; //開始座標 int xe= 0, ye= 0; //終了座標 Label Q = new Label("ドラッグしてください"); public void init() { addMouseListener(this); add(Q); } public void mousePressed(MouseEvent e) { xb=e.getX(); yb=e.getY(); } public void mouseClicked(MouseEvent e) {} // マウスボタンをクリックした時 public void mouseEntered(MouseEvent e) {} // マウスカーソルがアプレット領域に入った時 public void mouseExited(MouseEvent e) {} // マウスカーソルがアプレット領域から出た時 public void mouseReleased(MouseEvent e) { // マウスボタンを離した時 xe=e.getX(); ye=e.getY(); repaint(); } public void paint(Graphics g) { int t; if(xb > xe) { //左向きにドラッグした時は、xb と xe を入れ替える t = xe; xe = xb; xb = t; } if(yb > ye) { //上向きにドラッグした時は、yb と ye を入れ替える t = ye; ye = yb; yb = t; } g.drawOval(xb,yb,xe-xb,ye-yb); } }
【問題】
チェックボックスを3つ(円、四角、三角)表示し、 円を押すと円 四角を押すと四角形 三角を押すと三角形 を表示するプログラムを作りなさい。 図形の表示はマウスドラッグで行う。 実行例
【問題】
チェックボックスを2セット(円、四角、三角)(赤、青、緑)表示し、 円を押すと円 四角を押すと四角形 三角を押すと三角形 赤を押すと赤色 青を押すと青色 緑を押すと緑色 を表示するプログラムを作りなさい。 図形の表示はマウスドラッグで行う。 実行例