我有一个SwingWorker,它在后台与服务器通信,然后更新一个JFrame。我在调试我的应用程序时注意到,即使在SwingWorker完成其工作后,它的线程仍然存在。它卡在Unsafe.park(java.lang.Object)这是一个本地方法。我进一步研究了这一点,发现我的应用程序中的所有其他SwingWorker在完成后都执行相同的操作。如果有人需要,我可以提供源代码,但我认为没有必要,因为问题似乎很普遍。更新我在没有调试器的情况下运行了应用程序,但问题仍然存在。这是SwingWorker线程的转储:"SwingWorker-pool-2-thread-1"daemonpri
我想用线程创建一个[1人vsPC]游戏。我们的棋盘上有10*10个两种颜色的形状,如下所示:whenthePlayerclicksonBLUECircles,TheircolorturnsintoGray.attheothersidePCshouldturnallREDRectanglesintoGray.theWINNERiswhoClearsallhis/herownShapesEarlier.播放器的代码工作正常,但是,我的问题在于实现游戏的PC端,正如我在此article中所读到的我应该使用SwingWorker在GUI中实现线程。这是我第一次使用SwingWorkers,我不
我有一个SwingWorker,它调用一些不检查线程中断的代码。在调用worker.cancel(true)之后,worker.get()方法将立即抛出CancellationException(这是应该的).但是,由于后台任务的代码从不检查其线程是否被中断,因此它会愉快地继续执行。有没有标准的方法来等待后台任务真正完成?我希望显示“正在取消...”消息或类似的消息并阻止直到任务终止。(我敢肯定,如有必要,我总是可以在工作类中使用标志来完成此操作,只是寻找任何其他解决方案。) 最佳答案 我试了一下这个,这就是我想出的。我正在使用Co
在将SwingWorker与需要将更新发送回Controller的长时间运行的进程一起使用时,如何实现View与模型的分离?我可以使用SwingWorkersdoInBackground()通过调用例如model.doLongProcess()来保持EDT响应太棒了!我遇到的问题是尝试在流程完成之前取回数据,以根据进度更新View。我知道我可以通过使用SwingWorkerspublish()方法取回数据,但我认为这迫使我为doInBackground()中的doLongProcess()方法。为了引用MVC实现,我看起来有点像这样:http://www.leepoint.net/no
我正在尝试使用jFreechart生成两个图形,每个图形都有12个图形(在jFreeChart中称为系列)。然而,一些图表被简单地跳过了!我知道我这里有同步问题并尝试使用用户@trashgod提供给我的方法here但是我失败了。我知道我使用swingworker的方式不对!不知道怎么解决每幅图应包含10个平行水平直线的图形。正如您在所附图片中看到的,一些行丢失了。这两个数字也必须相同(但不是)。在实践中,我将不得不在不同时间在我的应用程序的多个位置生成多个图形(每个图形之间的随机时间间隔,甚至是单个图形的图形)非常感谢任何帮助Exceptioninthread"AWT-EventQue
我正在尝试在我的应用程序中实现一个SwingWorker类。有没有办法设置SwingWorker“超时”的时间长度?我当时在想,也许会抛出一个我可以捕获然后处理的OutOfTime异常。我只是不确定如何实现它。感谢您的帮助! 最佳答案 为什么不将您的任务嵌入到一个Runnable中,将其放入一个新的单线程ExecutorService然后对结果Future执行get()适当的超时。这将为您提供超时功能,因为如果作业没有及时完成,get()将抛出异常。 关于java-使用Java的Swin
来自SecondaryLoop的文档,不清楚何时应该使用此新功能而不是SwingWorker,一些有趣的例子会很有用。 最佳答案 SecondaryLoop的意图与SwingWorker基本相同。但是,与将多个SwingWorker链接在一起相比,使用SecondaryLoop可能更简单。看看HiddenJava7Features–SecondaryLoop以获得详细的解释和示例。 关于java-SecondaryLoop而不是SwingWorker?,我们在StackOverflow上
我有一个Java应用程序,它使用SwingWorker来更新GUI中的标签和进度条,它运行良好。但是,我想为此设置添加一项功能。我的swingworker执行一个长度为n的任务,并重复该任务m次。现在我的GUI只告诉我任务重复了多少次,但我希望它也告诉我我们所处任务的长度。说n=300和m=50,我想要这样的东西:Task49isat248()Taskhasbeenrepeated48times我应该在我的SwingWorker中修改什么?/****@authordigitaldust*/publicclassModelextendsSwingWorker{privateHashMap
这是为那里的挥杆专家准备的。我在这个问题上花了很多时间,所以我将花几行来解释这个问题。我有一个独立的javaswing应用程序(java6)。在我的应用程序中,我有一个带有单选按钮组的框架。我有一个链接到组中所有按钮的单一操作。该操作检查选择了哪个单选按钮并执行一些工作。“工作”涉及一些背景计算以及我应用程序中其他两个框架中的一些绘画。后台计算是多线程的。我想在用户选择其中一个单选按钮时显示一个进度条。However,whenaradiobuttonisselected,whiletheactiontotheradiobuttonishappening,theprogressbarne
我正在阅读sunjava教程,我在这里看到了这个页面:HowtoMakeanApplet在标题“小程序中的线程”下,我找到了这段代码://Backgroundtaskforloadingimages.SwingWorkerworker=(newSwingWorker(){publicImageIcon[]doInBackground(){finalImageIcon[]innerImgs=newImageIcon[nimgs];...//Loadalltheimages...returnimgs;}publicvoiddone(){//Removethe"Loadingimages"l