我们使用以下类在我们的 Java 应用程序中显示进度条:TextProgressBar
不幸的是,我们在使用它时遇到了一些闪烁问题(Win 7、Java 7)。您对我们如何避免这种情况有什么建议吗?我们能否以某种方式减少重绘它的频率,使用双缓冲或其他方式?非常感谢任何提示!
我们使用以下类在我们的 Java 应用程序中显示进度条:TextProgressBar
不幸的是,我们在使用它时遇到了一些闪烁问题(Win 7、Java 7)。您对我们如何避免这种情况有什么建议吗?我们能否以某种方式减少重绘它的频率,使用双缓冲或其他方式?非常感谢任何提示!
首先,尝试在构造时传入SWT.DOUBLE_BUFFERED
样式参数。如果这不能改善这种情况,则向上移动父链并添加SWT.DOUBLE_BUFFERED
到它们的构造函数调用中。
如果您无法控制父级,那么您可能需要将您的控件包装在另一个启用了此标志的 Composite 中。
免责声明:我知道该问题专门针对TextProgressBar
. 但是,我相信这个问题的许多观点并不局限于这个小部件。
我遇到了Text
小部件闪烁的问题,我既不能通过使用SWT.DOUBLE_BUFFERED
样式来解决这个问题,也不能用 包裹它Composite
,也不能应用它们的任何组合。
Text
最后,我可以通过简单地将小部件类型从 更改为来解决这个问题StyledText
。即使没有SWT.DOUBLE_BUFFERED
样式和没有Composite
包装,也没有闪烁。
希望这会帮助那些被这个问题的广泛标题所吸引的人。
先尝试SWT.NO_BACKGROUND
,如果不使用SWT.DOUBLE_BUFFERED
. 不要同时使用两者,因为没有意义。见讨论
您可以尝试使用thread.sleep()延迟时间。当我在使用jTables时遇到同样的问题时,它对我有用