Java 和处理 3.0 “frame” 类已弃用,是否有替代方案?

标签 java processing frame

所以Processing曾经有一个“框架”类,它允许一些多功能的功能。我正在尝试获取 PApplet 窗口在屏幕上的位置,但如果没有“frame”类,我似乎无法做到这一点。

旧方法:

int fX = frame.getX();

int fX = frame.getLocationOnScreen().x;

整个事情应该是动态的,因此在Processings setup() 中设置窗口位置不是一个选项。

希望有人能帮忙

您好!

最佳答案

您可能最好只使用旧的 frame 变量。

对于大多数此类情况,您应该使用新的 surface 变量,该变量的类型为 PSurface。您可以查看 PSurface here 的源代码。阅读该内容后,我们发现不幸的是,surface 变量无法让我们访问框架的位置。

由于您无法从 surface 变量获取该位置,因此您必须更深入地获取 native 组件(在默认情况下,一个SmoothCanvas 扩展了 awt Canvas)。我通过查看可用的 PSurfaceAWT 源代码 here 找到了这一点。 .

该代码看起来有点恶心,因为您必须进行一些转换:

import processing.awt.PSurfaceAWT;
import processing.awt.PSurfaceAWT.SmoothCanvas;

void setup(){
  size(200, 200);
}

void draw(){
  background(0);

  int x = ( (SmoothCanvas) ((PSurfaceAWT)surface).getNative()).getFrame().getX();
  text("x: " + x , 20, 20);
}

关于Java 和处理 3.0 “frame” 类已弃用,是否有替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107750/

相关文章:

javascript - 需要帮助在 p5.js 中为 Tic Tac Toe 绘制 X

wpf - 如何点击页面的一个按钮来改变Windows的框架来源?

c - GDB “info frame” 输出的含义?

Java Socket 监听 PHP 客户端不工作

java - JPA - 更改mappedBy列的名称

java - 如何从一组类创建一个类的实例?

javascript - P5 - 处理。无法同时运行和渲染多个草图

ios - 获取 subview 枚举的框架

java - android继承对象simplexml

java - 如何在 Android 中的第二个或其他 Activity 中运行方法?