我正在用Processing 3做一个简单的工具。
我希望我的草图不会在按下"X“按钮时关闭。我在StackOverflow上找到了一个question,但当我尝试这样做时,出现了这个错误:ClassCastException: processing.core.PApplet$8 cannot be cast to javax.swing.JFrame
我已经尝试添加更多的库,但现在错误显示为非库错误。
下面是一段代码:
import javax.swing.JFrame;
void setup() {
size(640, 360);
((JFrame)frame).setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
void draw() {
textSize(50);
text("some text", width/2, height/2)
}
void exit() {
println("Not exiting");
}当我尝试运行草图时,出现错误ClassCastException: processing.core.PApplet$8 cannot be cast to javax.swing.JFrame
发布于 2019-08-27 00:13:25
您链接到的答案是Processing 2,但您使用的是Processing 3。
您的错误说明了一切:不能将frame转换为JFrame,这正是您在这里尝试做的事情:
((JFrame)frame).setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);要了解此错误的来源,可以查看PApplet类here的源代码。
在该文件中搜索"frame",查看frame变量现在是java.awt.Frame而不是javax.swing.JFrame。Processing还覆盖了java.awt.Frame中的一些函数,以提供特定于Processing的行为和警告消息。
你可以开始研究如何防止java.awt.Frame关闭,但我也会重新考虑你是否想要这样做。阻止窗口关闭有点反模式,因此您应该仔细考虑是否真的需要这样做。您还可以考虑其他选项,例如使用全屏窗口而不是无法关闭的窗口。
https://stackoverflow.com/questions/57659710
复制相似问题