ClassCastException处理.core

我正在使用 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


慕妹3146593
浏览 95回答 1
1回答

慕莱坞森

您链接到的答案适用于处理 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关闭,但我也会考虑重新考虑您是否想这样做。阻止窗口关闭有点反模式,因此您应该仔细考虑是否真的需要这样做。您还可以考虑其他选项,例如使用全屏窗口而不是不可关闭的窗口。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java