打算写个CSDN记录一下做作业时遇到的问题,有的感觉挺有意思。
分布式系统作业:使用java多线程,一个线程显示GUI界面,并动态更新list的数据;另一个线程用来向list中添加数据。我用的是DefaultListModel,可以通过addElement去动态添加list元素,但是在运行时有时候列表面板会变空白,对它再次进行操作时,会重新显示所有内容。
解决:将EventQueue.invokeLater改成EventQueue.invokeAndWait。
原因:多线程阻塞。
修改后,如果添加三条元素,不会像之前一样逐条显示,而是会三条一起显示。