为了账号安全,请及时绑定邮箱和手机立即绑定

ClassCastException处理.core

ClassCastException处理.core

慕妹3146593 2023-06-21 13:48:23
我正在使用 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关闭,但我也会考虑重新考虑您是否想这样做。阻止窗口关闭有点反模式,因此您应该仔细考虑是否真的需要这样做。您还可以考虑其他选项,例如使用全屏窗口而不是不可关闭的窗口。


查看完整回答
反对 回复 2023-06-21
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信