- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要一些图片位于另一张图片之上,并且想要利用 PCamera
的addLayer()
方法。
这可能吗?
以下代码抛出NullPointerException
。这是怎么回事?
package test.piccolo;
import java.awt.Color;
import edu.umd.cs.piccolo.PCamera;
import edu.umd.cs.piccolo.PLayer;
import edu.umd.cs.piccolo.nodes.PPath;
import edu.umd.cs.piccolox.PFrame;
public class Try_Cameras_01 {
@SuppressWarnings("serial")
public static void main(String[] args) {
new PFrame() {
private PLayer layer1 = new PLayer();
private PLayer layer2 = new PLayer();
private PLayer layer3 = new PLayer();
private PCamera camera = new PCamera();
{
camera.addLayer(layer1);
camera.addLayer(layer2);
camera.addLayer(layer3);
}
@Override
public void initialize() {
getCanvas().setCamera(camera);
PPath redRectangle = PPath.createRectangle(0, 0, 100, 100);
redRectangle.setStrokePaint(Color.black);
redRectangle.setPaint(Color.red);
PPath greenRectangle = PPath.createRectangle(20, 20, 100, 100);
greenRectangle.setStrokePaint(Color.black);
greenRectangle.setPaint(Color.green);
PPath blueRectangle = PPath.createRectangle(40, 40, 100, 100);
blueRectangle.setStrokePaint(Color.black);
blueRectangle.setPaint(Color.blue);
layer1.addChild(redRectangle);
layer2.addChild(greenRectangle);
layer3.addChild(blueRectangle);
}
};
}
}
最佳答案
问题是,当您设置新相机时,它没有关联的根目录。结果,PCanvas.getRoot()
返回 null
,并且在其中一个绘制方法中存在 NPE
。以下是基本的 Piccolo2D 运行时结构:
了解更多信息Piccolo2D Patterns 。
在您的情况下,您缺少从 PCamera
到 PRoot
的链接。这是一个简单的修复:
private PCamera camera = new PCamera(); {
PRoot root = new PRoot();
root.addChild(camera);
camera.addLayer(layer1);
camera.addLayer(layer2);
camera.addLayer(layer3);
}
结果是:
此处提供了来自 PUtil.createBasicScenegraph()
的副本,用于创建基本相机。
public static PCamera createBasicScenegraph() {
final PRoot root = new PRoot();
final PLayer layer = new PLayer();
final PCamera camera = new PCamera();
root.addChild(camera);
root.addChild(layer);
camera.addLayer(layer);
return camera;
}
关于java - 如何在 Piccolo2D 中使用多个图层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20773197/
does not close tag
. 在 org.apache.xmlbeans.impl.piccolo.xml.Piccolo.reportFatalError
我通过Eclipse运行一个动态Web应用程序,我认为Tomcat在它下工作得很好,我从Eclipse中的tomcat服务器浏览了servlet,出现了servlet的欢迎页面,但是当我尝试访问它的不
在大多数应用中,向下旋转滚轮会减小缩放对象的尺寸,而向上旋转滚轮会增大尺寸。 在 piccolo2d 中,默认行为是相反的: private static void showWorldNode() {
为什么下面的示例中没有出现第一个和第三个矩形? 看起来矩形一旦大小为零就被破坏了。 package tests.piccolo; import org.piccolo2d.extras.PFrame;
如何在 JavaFX 中嵌入 Piccolo2D Canvas ? 我认为它应该通过 SwingNode 工作, 因为 Piccolo 有一个名为 PCanvas 的 Swing 控件. 这种方法适用
我是一名优秀的程序员,十分优秀!