我的解析器中有一些错误,它使用DefaultListModel
解析网站并在JList中设置15个元素。此外,我添加了计时器,刷新一段时间,清除此模型,再次填充,然后刷新所有帧。所以bug就是这样,我的列表显示为随机刷新标记:模型仍然填充但列表未显示在框架(System.out.println(list.isVisible()
)显示为TRUE,打印模型我得到所有15个项目。 / p>
一些代码: 这是在帧类声明中。
private static DefaultListModel<String> listModel = new DefaultListModel<>();
private static JList<String> list = new JList<>(listModel);
public static void execute() {
//some code
startTimer(activeProfile.getRefreshDelay() * 6000, activeProfile.getRefreshDelay() * 6000);
show();
}
public static void fillEpisodes() {
int i = 0;
for (String entry : Episodes.getList()) {
listModel.add(i, entry);
i++;
}
}
public class TimerController extends TimerTask{
@Override
public void run() {
MainFrame.getListModel().clear();
MainFrame.fillEpisodes();
for(int i=0;i<MainFrame.getListModel().size();i++){
System.out.println(MainFrame.getListModel().getElementAt(i));
}
MainFrame.show();
}
}
同样,我想提一下,在第一次启动时,我的框架显示完美,因为它甚至在第一次计时器处理之后。但经过第二次计时器处理后,我的列表包含0,15,0,15项。我试图重新绘制列表,重置模型,重新绘制框架 - 没有反应。