Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理草图时出现带有Websocket的NullPointerException_Websocket_Nullpointerexception_Processing - Fatal编程技术网

处理草图时出现带有Websocket的NullPointerException

处理草图时出现带有Websocket的NullPointerException,websocket,nullpointerexception,processing,Websocket,Nullpointerexception,Processing,我已经建立了一个利用语音识别库进行处理的示例,效果良好 我试图将字符串的内容发送到Draw函数,当您没有在void设置中定义默认值时,它会导致NullException错误 首先,我认为我应该设置一个全局字符串msg,但无论我如何定义它,它都不会用除了单词test之外的任何东西更新draw函数。这是因为我在void setup()中将其定义为具有值“test” 但是,如果删除单词test,将再次导致空异常错误 发生的情况是字符串msg默认为值测试,但一旦您对着笔记本电脑麦克风讲话,控制台应通过t

我已经建立了一个利用语音识别库进行处理的示例,效果良好

我试图将字符串的内容发送到Draw函数,当您没有在void设置中定义默认值时,它会导致NullException错误

首先,我认为我应该设置一个全局字符串msg,但无论我如何定义它,它都不会用除了单词test之外的任何东西更新draw函数。这是因为我在void setup()中将其定义为具有值“test”

但是,如果删除单词test,将再次导致空异常错误

发生的情况是字符串msg默认为值测试,但一旦您对着笔记本电脑麦克风讲话,控制台应通过text()更新单词或句子;函数,然后在处理java窗口中显示更新的单词

导入WebSocket。*;
WebsocketServer套接字;
pfontf;
串味精;
无效设置(){
socket=newWebSocketServer(这是1337,“/p5websocket”);
noLoop();
大小(480、120);
f=createFont(“Arial”,16,true);//Arial,16点,启用抗锯齿
如果(msg==null){
msg=“测试”;
println(msg);
}
否则{
println(msg);
}
}
作废提款(){
背景(100);
textFont(f,36);
填充(180);
println(msg);
text(msg,10,10,70,80);//文本框中的文本换行
}
无效webSocketServerEvent(字符串消息){
println(msg);
}

您是否询问如何将草图级别
msg
变量分配给传递到
webSocketServerEvent()
函数的
msg
参数的值

请注意,仅仅因为它们具有相同的名称并不意味着它们是相同的变量。它们是两个不同范围内的两个不同变量。如果要引用或重新指定草图级别变量,可以使用
this
关键字消除歧义:

void webSocketServerEvent(String msg){
  this.msg = msg;
  println(msg);
}
或者您可以重命名其中一个变量:

void webSocketServerEvent(String webSocketMessage){
  this.msg = webSocketMessage;
  println(msg);
}

在“测试”之后,您没有为
msg
分配任何值,因此它不能在任何地方更改。您的意思是在活动中分配它吗?谢谢,我不太确定如何分配它以便它在draw函数中更新。其中表示text(msg,10,10,70,80)是我希望从void webSocketServerEvent中得到的值,用于更新processing java窗口中显示的文本。目前,它只是在该窗口中显示test,但没有使用websocket中的新信息进行更新。msg的值在void webSocketServerEvent(String msg){println(msg);}中进行更新,因为当您对着麦克风讲话时,它会在控制台窗口中打印出处理中的结果,但它不会被void draw()捕获{}不,那个人只是在接收并打印它。它没有被存放在任何地方。您可能需要添加
this.msg=msg