mouseshapetest.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 70 行
JAVA
70 行
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
public class MouseShapeTest extends Applet implements MouseMotionListener
{
// 要绘制的Shape
private Shape shape;
// 鼠标光标是否在Shape上的标志
private boolean mouseOver;
// 当前绘制和填充的颜色
private Color currentColor;
public void init()
{
// Shape 的控制点
int[] x = { 25, 55, 60, 75, 110, 130 };
int[] y = { 65, 100, 133, 20, 115, 55 };
// 创建一个新的 Polygon 来代表我们的Shape.
//记住, Polygon*是*Shape,因为它实现了Shape 接口
shape = new Polygon(x, y, x.length);
mouseOver = false;
addMouseMotionListener(this);
}
public void paint(Graphics g)
{
// 把传入的Graphics容器转换为一个可用的 Graphics2D 对象
Graphics2D g2d = (Graphics2D)g;
g2d.setColor(currentColor);
// 如果鼠标光标在上方则填充 Shape
if(mouseOver)
{
g2d.fill(shape);
}
// 否则只是绘制Shape的外形
else
{
g2d.draw(shape);
}
}
public void mouseDragged(MouseEvent e) { /* 什么也没做 */ }
public void mouseMoved(MouseEvent e)
{
// 保存先前的值
boolean prevValue = mouseOver;
// 使用Shape.contains方法来更新 mouseOver 标志
mouseOver = shape.contains(e.getPoint()) ? true : false;
// 只是在有理由时重绘
if(prevValue != mouseOver)
{
// 在我们可以的时候为什么不改变当前颜色呢
currentColor = new Color(new Random().nextInt());
repaint();
}
}
} // MouseShapeTest
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?