暂停的SwingWorker执行,直到一个组件已停止正在调整

我使用重绘触发SwingWorker 。 该工人将自动重新创建图像以适合封闭宽度JPanel根据应用程序的自动调整选项。

问题是引起内存溢出异常。 这是因为图像具有大分辨率和工人正在被呼叫持续时被拖动窗口大小。

我一直试图避 ​​免这种情况只execute()isDone()是真实的。 不过,我觉得有这样做的更好的方法。 也许通过使用某种计时器? 你有什么建议?

--------------解决方案-------------

这是一个有点左外野,但基本上我做的是用一个javax.swing.Timer中。 其基本思想是只执行一个动作计时器触发时。

private Timer timer;

.
.
.

timer = new Timer(250, new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

// Perform required action
// Start the swing worker ??

}
});
timer.setCoalesce(true);
timer.setRepeats(false);

.
.
.

public void setBounds(int x, int y, int width, int height) {

// Force the time to start/reset
timer.restart();

super.setBounds(x, y, width, height);

}

分类:摇摆 时间:2015-03-15 人气:0
本文关键词: 秋千,重绘
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.083 (s). 10 q(s)