gpt4 book ai didi

java - 让处理读取 Java 文件输出/值

转载 作者:行者123 更新时间:2023-11-30 06:50:53 25 4
gpt4 key购买 nike

我正在编写一个程序,使用Processing 和一个在命令行中完美运行的示例Java 文件从VRPN 设备读取按钮值。

我已经使用适当的库/文件设置了我的草图文件夹,我只需要重新配置 Java 代码以将值发送到 PDE 端(当前为 System.out.println())。我尝试建立 PApplet 对象,但在 ButtonTest 类中配置它时遇到问题。我尝试过研究 Java 中的此类功能,但找不到正确的术语。任何帮助将不胜感激!

import vrpn.*;
import processing.core.PApplet;

public class ButtonTest implements vrpn.ButtonRemote.ButtonChangeListener {


public void buttonUpdate( ButtonRemote.ButtonUpdate u, ButtonRemote button) {
System.out.println( "Button message from vrpn: \n" +
"\ttime: " + u.msg_time.getTime( ) + " button: " + u.button + "\n" +
"\tstate: " + u.state );
}

public static void main(String[] args) {

String buttonName = "spaceNav@127.0.0.1:3891";
ButtonRemote button = null;

try {
button = new ButtonRemote( buttonName, null, null, null, null );
}

catch(InstantiationException e) {
// if fails
System.out.println( "We couldn't connect to button " + buttonName + "." );
System.out.println(e.getMessage());
return;
}

ButtonTest test = new ButtonTest(pa);
button.addButtonChangeListener(test);
}
}

我的文件结构:(PDE 文件当前为空/准备就绪并正在等待)

My file structure

仅供引用,我已设法将 Java 文件中的值发送到此处所示的处理草图,但我似乎无法在该项目中实现它 https://forum.processing.org/two/discussion/3677/

最佳答案

您需要将外部类中的数据获取到处理草图中。您有两种选择:

选项一:在您的处理草图中,每当您想要从外部类获取数据时,只需调用 getter 函数即可。这是一个简单的例子:

ExternalClass ec;

void setup(){
ec = new ExternalClass();
}

void draw(){
println(ec.getData());
}

这样做的好处是您的外部类不必了解有关处理的任何信息。缺点是您必须不断轮询外部类。

选项二:将对您的处理草图的引用传递给外部类,然后从外部类调用处理草图中的函数。为此,您首先获取对 sketch 类实例的引用(可能通过构造函数传入)。然后,您可以使用该实例调用 sketch 类的函数。

在处理方面,您可以使用 this 关键字传递对草图本身的引用。它可能看起来像这样:

ExternalClass ec;

void setup(){
ec = new ExternalClass(this);
}

void setData(int whatever){
println(whatever);
}

另请注意 setData() 函数,您可以从外部类调用该函数。

现在,外部类需要引用您的草图。在处理编辑器中,您只需使用草图的名称:

public class ExternalClass{
YouSketchName sketch;

public ExternalClass(YourSketchName sketch){
this.sketch = sketch;
}

private void dataChanged(){
sketch.setData(42);
}
}

这允许您在事件发生时设置数据,而不是不断轮询它,但它更复杂。

关于java - 让处理读取 Java 文件输出/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42799760/

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