7

我们使用以下类在我们的 Java 应用程序中显示进度条:TextProgressBar

不幸的是,我们在使用它时遇到了一些闪烁问题(Win 7、Java 7)。您对我们如何避免这种情况有什么建议吗?我们能否以某种方式减少重绘它的频率,使用双缓冲或其他方式?非常感谢任何提示!

4

4 回答 4

6

首先,尝试在构造时传入SWT.DOUBLE_BUFFERED样式参数。如果这不能改善这种情况,则向上移动父链并添加SWT.DOUBLE_BUFFERED到它们的构造函数调用中。

如果您无法控制父级,那么您可能需要将您的控件包装在另一个启用了此标志的 Composite 中。

于 2013-05-30T03:33:28.233 回答
1

免责声明:我知道该问题专门针对TextProgressBar. 但是,我相信这个问题的许多观点并不局限于这个小部件。

我遇到了Text小部件闪烁的问题,我既不能通过使用SWT.DOUBLE_BUFFERED样式来解决这个问题,也不能用 包裹它Composite,也不能应用它们的任何组合。

Text最后,我可以通过简单地将小部件类型从 更改为来解决这个问题StyledText。即使没有SWT.DOUBLE_BUFFERED样式和没有Composite包装,也没有闪烁。

希望这会帮助那些被这个问题的广泛标题所吸引的人。

于 2014-08-13T14:03:02.403 回答
1

先尝试SWT.NO_BACKGROUND,如果不使用SWT.DOUBLE_BUFFERED. 不要同时使用两者,因为没有意义。见讨论

于 2014-05-06T14:56:54.967 回答
-3

您可以尝试使用thread.sleep()延迟时间。当我在使用jTables时遇到同样的问题时,它对我有用

于 2013-06-03T18:12:26.873 回答