2011-10-30 24 views
0

矩形の外側でマウスをクリックしたときに背景色を変更したいと思います。私はちょうどMouseEventの使い方を知らない。マウスイベントの背景色を変更する

import java.applet.*; 
import java.awt.*; 
import java.awt.event.*; 

public class AnAppletWithMouseEvents extends Applet implements MouseListener { 
public void init() 
{ 
    addMouseListener(this); 
} 
public void paint(Graphics g) 
{ 

    g.setColor(Color.green); 
    g.drawRect(10, 30, 150, 150); 
} 
public void mouseClicked(MouseEvent e) 
{ 
    String clickDesc; 
    if (e.getClickCount() == 2) 
     clickDesc = "double"; 
    else 
     clickDesc = "single"; 

    System.out.println("Mouse was " + clickDesc + "-clicked at location (" + 
     e.getX() + ", " + e.getY() + ")"); 

} 
public void mouseEntered(MouseEvent e) {} 
public void mouseExited(MouseEvent e) {} 
public void mousePressed(MouseEvent e) {} 
public void mouseReleased(MouseEvent e) {} 
} 
+1

あなたの問題は何ですか?どこをクリックしたときの出力は? – Sibbo

+1

正確にどの部分に問題がありますか?あなたの 'mouseClicked'メソッドは動作しますか?もしそうなら、あなたはマウスがクリックされた点と長方形の境界を持っていますが、何が必要ですか? – Kevin

答えて

0
import java.applet.*; 
import java.awt.*; 
import java.awt.event.*; 

public class AnAppletWithMouseEvents extends Applet implements MouseListener { 
Color color = Color.green; 
public void init() 
{ 
    addMouseListener(this); 
} 
public void paint(Graphics g) 
{ 

    g.setColor(this.color); 
    g.drawRect(10, 30, 150, 150); 
} 
public void mouseClicked(MouseEvent e) 
{ 
    this.color = color.red; 
    this.repaint(); 

} 
public void mouseEntered(MouseEvent e) {} 
public void mouseExited(MouseEvent e) {} 
public void mousePressed(MouseEvent e) {} 
public void mouseReleased(MouseEvent e) {} 
} 

今、あなたは、クリックは、矩形の境界外だった場合はカウントする必要があります。 mouseClicked方法で

+0

もちろん、クリックが四角形の内側にあるかどうかをチェックする必要があります。しかし、オペレーションのオリジナルのコードを考えると、彼はそれを行う方法を理解する必要があります。 –

0

、あなたがe.getX()e.getY()が長方形の外側にあることをテストし、その後setBackground()を呼び出す必要があります。

this.setBackground(Color.red);

長方形の枠が緑色に留まります(何をしたいということでしょうか?)

HTH