草庐IT

Swingworker

全部标签

java - 为什么我的 Java 异常在 SwingWorker 中抛出时不打印堆栈跟踪?

为什么当我围绕这段代码包装SwingWorker时它不再报告抛出异常?importjava.security.InvalidParameterException;importjavax.swing.SwingUtilities;importjavax.swing.SwingWorker;publicclassTest{publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){@Overridepublicvoidrun(){newSwingWorker(){@Overrideprotected

java - 基本不确定进度条用法

我只是想在完成长时间下载时在框架的左下角设置一个不确定的JProgressBar动画。我浏览了很多教程,但对我来说没有一个是清楚的。我只是想让它在后台下载文件时设置动画。在我尝试过的每一种方式中,它都不会在下载完成之后之前为进度条设置动画。我需要帮助知道在哪里放置我的download()调用。classMyFunClassextendsJFrame{JProgressBarprogressBar=newJProgressBar();publicvoidbuttonClicked(){progressBar.setVisible(true);progressBar.setIndeterm

java - GUI 以 30 fps 运行?

在测试一些使用Swingworker的实时模拟代码时,我注意到我的GUI似乎总是以30fps的速度运行,不多也不少。每当用户与应用程序交互(如鼠标移动)或调用Swingworker的process()方法时,我都会更新GUI。Swingworker现在什么都不做,它只是从GUI中获取鼠标位置,然后通过publish()和process()方法将其作为克隆发回(我这样做只是为了看看我能做什么'在线程之间通信时做,因为多线程对我来说仍然是相当新的)。我在任何地方都没有任何计时器,Swingworker的process()方法在GUI上调用repaint(),所以我想知道是什么导致GUI以3

java - 如何指示 JComboBox 正在加载值?

我有一个JComboBox,它的值是通过网络检索的。我正在寻找一种方法来向用户表明这一事实,当用户想要查看列表时,展开下拉列表,只有这样才会检索数据。p>基本要求包括:JComboBox的下拉菜单不应锁定EDT,但组合的操作在有值之前不应起作用。用户应该知道何时检索到所有数据。指示的大小(UI空间)应尽可能小。请注意,在用户想要查看组合的值(即展开下拉列表)之前不会检索数据。我用过的解决方案:我使用了SwingWorker来保持UI响应。使用JIDE的Overlayable和JIDE的InfiniteProgressPanel来覆盖组合框,后者会监听worker。

java - 无法覆盖 SwingWorker 中的 process() 方法

我有一个SwingWorker类如下:classRemotePlayersWorkerextendsSwingWorker{PlayerCanvasparent;RemoteHandlerremote;String[][]players;intmaximumConnections;publicRemotePlayersWorker(PlayerCanvasparentCanvas,RemoteHandlerremoteHandle){this.parent=parentCanvas;this.remote=remoteHandle;}@OverrideprotectedString[]

java - SwingWorker 的基本原理是什么?

据我所知,它用于在swing应用程序中分派(dispatch)新线程以执行一些“后台”工作,但使用它而不是“普通”线程有什么好处?使用新线程和使用SwingUtilities.invokeLater完成调用某些GUI方法时不一样吗?...我在这里错过了什么?http://en.wikipedia.org/wiki/SwingWorkerhttp://java.sun.com/products/jfc/tsc/articles/threads/threads2.html 最佳答案 是的,您可以完成SwingWorker使用普通线程+i

java - 如何在*没有*忙等待的情况下读取 SwingWorker 的结果?

我正在编写一个使用SwingWorker执行其文件菜单操作的应用程序.每个被调用的方法都会返回一个boolean表明操作是否成功执行的值。目前我正在忙着等待结果,像这样:publicbooleanexecuteOperation(){finalSwingWorkerworker=newSwingWorker(){@OverrideprotectedBooleandoInBackground()throwsException{//..if(aborted){returnfalse;}//..returntrue;}};worker.execute();//busywaitwhile(!w

java - 如何将参数传递给 SwingWorker?

我正在尝试在我的GUI中实现Swingworker。目前我有一个包含按钮的JFrame。当按下它时,它应该更新显示的选项卡,然后在后台线程中运行程序。这是我目前所拥有的。classClassA{privatestaticvoidaddRunButton(){JButtonrunButton=newJButton("Run");runButton.setEnabled(false);runButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){newClassB().exec

java - java swing中的setvisible方法挂起系统

我有一个正在处理的银行gui应用程序,我的jdialog的setvisible方法似乎有问题。用户提取有效金额后,我会弹出一个简单的对话框,上面写着“正在进行的交易”。在我的dobackground方法中,我不断轮询以检查是否已收到交易。我尝试使用swingworker,但我不明白为什么它不起作用。如果我删除setvisible调用它工作正常,那么为什么setvisible导致系统挂起?这是我的jbuttonmouselistener中的代码:SwingWorkerworker=newSwingWorker(){JDialogwaitForTrans=newJDialog((JFram

java - 如何取消 SwingWorker 的执行?

目前我有两个SwingWorker线程在后台工作。如果发生异常,该方法停止工作,但线程仍在运行。doInBackground()发生异常时如何停止执行并杀死线程?this.cancel(true)不要破坏/关闭线程。我怎样才能做到这一点?@OverrideprotectedBooleandoInBackground()throwsException{try{while(true){//somecodeherereturntrue;}}catch(Exceptione){this.cancel(true);//我在Netbeans的调试中看到了这些线程。'AWT-EventQueue-0