Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从swingworker为JPanel调用repaint()_Java_Swing_Jpanel_Swingworker - Fatal编程技术网

Java 从swingworker为JPanel调用repaint()

Java 从swingworker为JPanel调用repaint(),java,swing,jpanel,swingworker,Java,Swing,Jpanel,Swingworker,第一次加载慢速JPanel的最佳实践是什么 我有一个JButton,单击它时,会加载一个新的JPanel,其中包含52个JLabel,每个JLabel都包含一个图像(这是一个纸牌游戏) 但是当JPanel第一次加载时,单击这个JButton会将GUI冻结大约5秒钟 我知道我应该使用SwingWorker,但我尝试初始化JPanel,将其添加到JFrame中,并在SwingWorker中调用其repain(),但没有成功 我应该如何正确处理在后台加载JPanel,以便GUI在加载时不会冻结?(旁注

第一次加载慢速JPanel的最佳实践是什么

我有一个JButton,单击它时,会加载一个新的JPanel,其中包含52个JLabel,每个JLabel都包含一个图像(这是一个纸牌游戏)

但是当JPanel第一次加载时,单击这个JButton会将GUI冻结大约5秒钟

我知道我应该使用SwingWorker,但我尝试初始化JPanel,将其添加到JFrame中,并在SwingWorker中调用其repain(),但没有成功

我应该如何正确处理在后台加载JPanel,以便GUI在加载时不会冻结?(旁注,如果我退出主菜单并再次单击该按钮,则需要一秒钟的时间,因为它已加载一次)


谢谢

这不是一个直接的解决方案,但是你可以考虑在用户在主菜单中预先加载图像。在开始时,我将所有52个图像加载到静态类中的一个HASMAP中,通过SWIFWER,所以问题不是加载图像,而是第一次将所有J标签都放在屏幕上(我想)。