我正在使用 Processing 3 制作一个简单的工具。我希望按下“X”按钮时我的草图不会关闭。我在 StackOverflow 上发现了一个问题,但是当我尝试这样做时,出现以下错误: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
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
您链接到的答案适用于处理 2,但您正在使用处理 3。
您的错误说明了一切:frame
无法强制转换为JFrame
,这就是您在这里尝试执行的操作:
((JFrame)frame).setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
在该文件中进行搜索"frame"
以查看frame
变量现在是 ajava.awt.Frame
而不是javax.swing.JFrame
。Processing 还会重写 中的一些函数,以java.awt.Frame
提供特定于 Processings 的行为和警告消息。
您可以开始研究如何防止 ajava.awt.Frame
关闭,但我也会考虑重新考虑您是否想这样做。阻止窗口关闭有点反模式,因此您应该仔细考虑是否真的需要这样做。您还可以考虑其他选项,例如使用全屏窗口而不是不可关闭的窗口。
添加回答
举报
0/150
提交
取消