Java Swing应用程序中的次要重构导致巨大的减速
发布时间:2020-12-15 08:37:35 所属栏目:Java 来源:网络整理
导读:我的任务是重构我们在这里的 Java Swing应用程序非常苛刻.我的工作是清理代码并使其更具动态性,因为我们将开始将其与第二个项目一起使用,并且需要能够适当调整.包含一个窗口的一小部分 一个按钮 用于选择日期的JFormattedTextField. 显示数据的3X4 JLabel表.
我的任务是重构我们在这里的
Java Swing应用程序非常苛刻.我的工作是清理代码并使其更具动态性,因为我们将开始将其与第二个项目一起使用,并且需要能够适当调整.包含一个窗口的一小部分
>一个按钮 最初编写此文件的人只使用GridBagLayout JPanel然后硬编码所有内容,包括表的标题和行标签,并在动态数据位置留下空的JLabel.当接收到动态信息时,使用文本数据调用setText.我的重构的一部分将导致整个表在维度和内容上是动态的,所以我决定使用GridLayout使表成为子面板,并使用这段代码动态设置内容和维度: public void updateInfoPanel(ArrayList rows) { System.out.println("Updating Info Panel!"); //genericInfo is the new sub panel in question. genericInfo.removeAll(); GridLayout layout = new GridLayout(); layout.setColumns(rows.get(0).length); layout.setRows(rows.size()); genericInfo.setLayout(layout); for(String[] row : rows) { for(String element : row) { genericInfo.add(new Label(element)); } } } 我已经证实,每次创建窗口只会调用一次,但整个窗口现在非常缓慢.对于用于在几分之一秒内响应的帧的其他部分中的点击,可能需要> 5秒钟.有谁知道会导致什么?有什么关于GridLayouts的东西,我不明白? 解决方法
尝试在EDT上调用此代码.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |