JFrame上未显示Java JList
我的解析器中有一些bug,它使用JFrame上未显示Java JList,java,swing,jlist,Java,Swing,Jlist,我的解析器中有一些bug,它使用DefaultListModel解析站点并在JList中设置15个元素。我还添加了计时器,它会刷新一段时间,清除此模型,再次填充,然后刷新所有帧。所以错误在于,我的列表显示为随机刷新:模型仍然被填充,但列表没有显示在框架上(System.out.println(list.isVisible())显示为真,打印模型我得到了所有15个项目) 一些代码: 这在框架类声明中 private static DefaultListModel<String> lis
DefaultListModel
解析站点并在JList中设置15个元素。我还添加了计时器,它会刷新一段时间,清除此模型,再次填充,然后刷新所有帧。所以错误在于,我的列表显示为随机刷新:模型仍然被填充,但列表没有显示在框架上(System.out.println(list.isVisible()
)显示为真,打印模型我得到了所有15个项目)
一些代码:
这在框架类声明中
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++;
}
}
private静态DefaultListModel listModel=new DefaultListModel();
私有静态JList列表=新JList(listModel);
公共静态void execute(){
//一些代码
startTimer(activeProfile.getRefreshDelay()*6000,activeProfile.getRefreshDelay()*6000);
show();
}
公共静态无效集(){
int i=0;
for(字符串条目:剧集.getList()){
添加(i,条目);
i++;
}
}
TimerController类:
公共类TimerController扩展TimerTask{
@凌驾
公开募捐{
MainFrame.getListModel().clear();
MainFrame.fills();
对于(int i=0;我必须弄清楚这一点,首先列表显示正确,然后它在空和正确之间交替显示?@tobias_k yea,每秒钟它再次填充一次。可能我的listModel有问题?甚至System.out.println(list.getModel)显示每个计时器的所有项:nedded添加一个列表模型,填充它,然后用它替换现有的。模型更改后Swing重新绘制列表,类似这样:)
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();
}
}