我想知道在JAVA中显示和更新图像的最快方法是什么。我从插座中不断收到一系列图像,我想实时显示它们。我目前正在JFrame中使用Jlabel。
void refreshScreen(BufferedImage bufImg)
{
label.setIcon(new ImageIcon(bufImg));
frame.repaint();
frame.getContentPane().repaint();
}
然而,这非常慢,即使在我的快速计算机上也需要15-20秒才能更新。这样做的理想方式是什么?
答案 0 :(得分:1)
问题不在于更新图像。当您设置JLabel的图标时,它将立即重新绘制。
问题可能在于通过套接字接收图像(计算机的速度在这里没有效果)。您必须确保使用套接字的代码不会阻止事件调度线程,因为这将阻止GUI重新绘制自身。因此,您需要为Socket连接使用单独的Thread。
阅读Concurrency上的Swing教程中的部分以获取更多信息。