[英]Changing the background color on mouse event
我想在矩形外部單擊鼠標時更改背景顏色。 我只是不知道如何使用 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) {}
}
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
方法中,您應該測試e.getX()
和e.getY()
在矩形之外,然后調用setBackground()
:
this.setBackground(Color.red);
矩形邊框將保持綠色(這是您想要的嗎?)
HTH
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.