我们使用以下类在Java应用程序中显示进度条:TextProgressBar
不幸的是,在使用它时,我们遇到了一些闪烁问题(Win 7,Java 7)。你有什么提示我们如何避免这种情况吗?我们可以以某种方式重新粉刷它,使用双缓冲或其他什么?非常感谢任何提示!
答案 0 :(得分:5)
首先,尝试将SWT.DOUBLE_BUFFERED
传递给构造中的样式参数。如果这无法改善这种情况,请向上移动父链并将SWT.DOUBLE_BUFFERED
添加到其构造函数调用中。
如果您无法控制父级,那么您可能需要将控件包装在另一个启用了此标志的Composite中。
答案 1 :(得分:1)
首先尝试SWT.NO_BACKGROUND
,如果不使用SWT.DOUBLE_BUFFERED
。
不要同时使用两者,因为没有意义。
请参阅discussion
答案 2 :(得分:1)
免责声明:我知道这个问题具体涉及TextProgressBar
。但是,我相信此问题的许多观点不仅限于此小部件。
我遇到了Text
窗口小部件闪烁的问题,我无法使用SWT.DOUBLE_BUFFERED
样式解析,也无法使用Composite
解压缩,也无法应用他们的任何组合。
最后,我只需将小部件类型从Text
更改为StyledText
即可解决此问题。即使没有SWT.DOUBLE_BUFFERED
样式且没有Composite
包装,也没有闪烁。
希望这会有助于被这个问题的广泛标题所吸引的人。
答案 3 :(得分:-3)
您可以尝试使用 thread.sleep()延迟时间。当我使用 jTables
时遇到同样的问题时,它对我有用