首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassCastException Processing.core

ClassCastException Processing.core
EN

Stack Overflow用户
提问于 2019-08-26 22:17:37
回答 1查看 75关注 0票数 0

我正在用Processing 3做一个简单的工具。

我希望我的草图不会在按下"X“按钮时关闭。我在StackOverflow上找到了一个question,但当我尝试这样做时,出现了这个错误:ClassCastException: processing.core.PApplet$8 cannot be cast to javax.swing.JFrame

我已经尝试添加更多的库,但现在错误显示为非库错误。

下面是一段代码:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-27 00:13:25

您链接到的答案是Processing 2,但您使用的是Processing 3。

您的错误说明了一切:不能将frame转换为JFrame,这正是您在这里尝试做的事情:

代码语言:javascript
复制
((JFrame)frame).setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

要了解此错误的来源,可以查看PApplethere的源代码。

在该文件中搜索"frame",查看frame变量现在是java.awt.Frame而不是javax.swing.JFrame。Processing还覆盖了java.awt.Frame中的一些函数,以提供特定于Processing的行为和警告消息。

你可以开始研究如何防止java.awt.Frame关闭,但我也会重新考虑你是否想要这样做。阻止窗口关闭有点反模式,因此您应该仔细考虑是否真的需要这样做。您还可以考虑其他选项,例如使用全屏窗口而不是无法关闭的窗口。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57659710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档