相关疑难解决方法(0)

防止在后台任务期间锁定Swing GUI

我有一个swing应用程序,它存储一个对象列表.当用户点击按钮时

我想对列表中的每个对象执行两个操作,然后一旦完成,将结果绘制在JPanel中.我一直在尝试使用SwingWorker,Callable和Runnable进行处理,但无论我做什么,在处理列表时(可能需要几分钟,因为它是IO绑定的),GUI被锁定.

我有一种感觉,这可能是我调用线程或其他东西的方式,还是可能与图形函数有关?这不是线程,因为它非常快.

我必须按顺序完成两个处理阶段,那么确保第二个阶段在第一个阶段等待的最佳方法是什么?我已经使用了join(),然后

while(x.isAlive())  
{  
        Thread.sleep(1000);  
}
Run Code Online (Sandbox Code Playgroud)

尝试确保这一点,但我担心这也可能是我的问题的原因.

我一直在寻找一些指针,但由于我找不到任何东西,我确信我在这里做了些蠢事.

java swing multithreading swingworker event-dispatch-thread

11
推荐指数
2
解决办法
1万
查看次数

Swing:无法让JButton更新 - repaint()无效

我第一次使用Swing来创建一个简单的GUI.它包含一个JFrame我放置了一个单独的JButton,当点击它时,调用一些其他代码,大约需要.3秒钟返回.

就在调用此代码之前actionPerformed(),我想更新按钮上的文本以通知用户正在进行处理.我的问题是,直到3秒钟的呼叫返回后,按钮上的文字才会更新.我希望在通话过程中出现更新的文本,然后我会将其更改回来.

当我点击按钮时,调用repaint()on JButton不会执行任何操作并在JFrame结果中调用它Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException.

java swing repaint swingworker

7
推荐指数
2
解决办法
8073
查看次数

Java 1.6中Java Swing App中的绘画问题

我正在研究一个Swing应用程序(目前运行在Java 1.6更新11上),它有一些间歇性的绘制刷新问题(例如有工件等).这只发生在我们应用程序的某些用户而不是其他用户.

之后做一些研究,我发现,设置属性sun.java2d.d3d,以false可以帮助而事实上,它帮助我们的用户之一.

现在其他一些用户正在抱怨这个问题,我正在考虑false为所有用户设置属性.

我的基本问题如下:

究竟是什么原因造成的?是视频卡吗?是司机吗?这是Sun的错误吗?(例如http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635462)三者的组合?

换句话说,最好是简单地关闭此属性,还是仅影响某些更新到最新驱动程序的视频卡?

java swing paint

5
推荐指数
1
解决办法
2330
查看次数