【发布时间】:2020-10-06 06:45:36
【问题描述】:
当使用 java Graphics2D 绘制到屏幕上时,我的 JFrame 内随机出现一个全黑窗口。当我尝试移动我正在绘制的图像时,它会更频繁地发生。我正在使用 JPanel 并覆盖 PaintComponent 并切换到具有缓冲策略的 Canvas。我在任何一种情况下都会闪烁。 BufferStrategy 设置为 2。我每 40 毫秒使用一次 SwingTimer 进行绘图,我尝试对此进行节流,即使设置为非常高的延迟(例如 4 秒)也没有什么区别。这只发生在带有 GTX 1050 ti 的 Ubuntu 20.04 上使用任何专有的 nvidia 驱动程序时。我尝试清除并重新安装驱动程序我尝试了其他驱动程序下的所有可用驱动程序以及从 nvidia 的站点安装。如果我使用我的 APU 嵌入式显卡,则不会出现此问题,在具有嵌入式 radeon 显卡的笔记本电脑上进行测试时也不会出现此问题。这是我的画法:
bf = getBufferStrategy();
Graphics2D g = (Graphics2D) bf.getDrawGraphics();
do {
try{
g.clearRect(0,0,getWidth(),getHeight());
//Drawing Loading
if(c.getLoading()){
drawLoading(g);
}
//Draw Login
if(c.getShowLogin()){
drawLogin(g);
}
if(c.drawGame()){
drawGame(g);
}
} finally {
g.dispose();
}
bf.show();
} while (bf.contentsLost());
我尝试在 nvidia-settings 应用程序下更改功率级别和 openGL 性能,但没有成功。
[编辑] 顺便说一下 java: openjdk 11.0.8 2020-07-14 在两台机器上测试过。
【问题讨论】:
-
我建议这是驱动问题
标签: java