gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:58:40 24 4
gpt4 key购买 nike

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

即当鼠标光标位于对象上方时更改对象的颜色或样式?需要正确考虑进出。

最佳答案

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

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();
}
});
}
}

关于java - 如何在 Piccolo2D 中实现悬停行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com