首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Piccolo2D中实现悬停行为?

如何在Piccolo2D中实现悬停行为?
EN

Stack Overflow用户
提问于 2013-10-21 01:18:52
回答 1查看 99关注 0票数 0

在Piccolo2D中实现“悬停行为”的最简单方法是什么?

例如,当鼠标光标位于对象上方时,更改对象的颜色或样式?需要考虑到正确的移入和移出。

EN

回答 1

Stack Overflow用户

发布于 2013-10-21 14:22:37

您可以将输入事件处理程序添加到节点。下面是一个将PBasicInputEventHandler附加到一个层以捕获mouseEnteredmouseExited事件的基本示例。还可以将事件处理程序添加到层中的各个节点。

代码语言:javascript
复制
import java.awt.Color;
import javax.swing.SwingUtilities;
import edu.umd.cs.piccolo.event.PBasicInputEventHandler;
import edu.umd.cs.piccolo.event.PInputEvent;
import edu.umd.cs.piccolo.nodes.PPath;
import edu.umd.cs.piccolox.PFrame;

public class DemoInputHandler {

    @SuppressWarnings("serial")
    private static void createAndShowUI() {
        new PFrame() {
            @Override
            public void initialize() {
                PPath node = PPath.createRectangle(0, 0, 100, 100);
                node.setOffset(50, 50);
                node.setPaint(Color.BLUE);
                getCanvas().getLayer().addChild(node);

                node = PPath.createRectangle(0, 0, 100, 100);
                node.setOffset(200, 50);
                node.setPaint(Color.BLUE);
                getCanvas().getLayer().addChild(node);

                getCanvas().getLayer().addInputEventListener(
                        new PBasicInputEventHandler() {
                            @Override
                            public void mouseEntered(final PInputEvent event) {
                                event.getPickedNode().setPaint(Color.RED);
                            }

                            @Override
                            public void mouseExited(final PInputEvent event) {
                                event.getPickedNode().setPaint(Color.BLUE);
                            }
                        });
            }
        };
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowUI();
            }
        });
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19480421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档